Showing preview only (1,483K chars total). Download the full file or copy to clipboard to get everything.
Repository: focus-creative-games/hybridclr
Branch: main
Commit: 9aa15b3b1448
Files: 87
Total size: 1.4 MB
Directory structure:
gitextract_uw9a1g60/
├── .github/
│ ├── FUNDING.yml
│ └── ISSUE_TEMPLATE/
│ └── bug_report.md
├── .gitignore
├── LICENSE
├── README.md
├── README_EN.md
├── docs/
│ └── _config.yml
└── hybridclr/
├── CommonDef.cpp
├── CommonDef.h
├── Il2CppCompatibleDef.cpp
├── Il2CppCompatibleDef.h
├── Runtime.cpp
├── Runtime.h
├── RuntimeApi.cpp
├── RuntimeApi.h
├── RuntimeConfig.cpp
├── RuntimeConfig.h
├── generated/
│ ├── AssemblyManifest.cpp
│ ├── MethodBridge.cpp
│ └── UnityVersion.h
├── interpreter/
│ ├── Engine.cpp
│ ├── Engine.h
│ ├── InstrinctDef.h
│ ├── Instruction.cpp
│ ├── Instruction.h
│ ├── Interpreter.cpp
│ ├── Interpreter.h
│ ├── InterpreterDefs.cpp
│ ├── InterpreterDefs.h
│ ├── InterpreterModule.cpp
│ ├── InterpreterModule.h
│ ├── InterpreterUtil.cpp
│ ├── InterpreterUtil.h
│ ├── Interpreter_Execute.cpp
│ ├── MemoryUtil.h
│ ├── MethodBridge.cpp
│ └── MethodBridge.h
├── metadata/
│ ├── AOTHomologousImage.cpp
│ ├── AOTHomologousImage.h
│ ├── Assembly.cpp
│ ├── Assembly.h
│ ├── BlobReader.h
│ ├── ClassFieldLayoutCalculator.cpp
│ ├── ClassFieldLayoutCalculator.h
│ ├── Coff.h
│ ├── ConsistentAOTHomologousImage.cpp
│ ├── ConsistentAOTHomologousImage.h
│ ├── CustomAttributeDataWriter.h
│ ├── Image.cpp
│ ├── Image.h
│ ├── InterpreterImage.cpp
│ ├── InterpreterImage.h
│ ├── MetadataDef.h
│ ├── MetadataModule.cpp
│ ├── MetadataModule.h
│ ├── MetadataPool.cpp
│ ├── MetadataPool.h
│ ├── MetadataReader.h
│ ├── MetadataUtil.cpp
│ ├── MetadataUtil.h
│ ├── MethodBodyCache.cpp
│ ├── MethodBodyCache.h
│ ├── Opcodes.cpp
│ ├── Opcodes.h
│ ├── PDBImage.cpp
│ ├── PDBImage.h
│ ├── RawImage.cpp
│ ├── RawImage.h
│ ├── RawImageBase.cpp
│ ├── RawImageBase.h
│ ├── SuperSetAOTHomologousImage.cpp
│ ├── SuperSetAOTHomologousImage.h
│ ├── Tables.h
│ ├── VTableSetup.cpp
│ └── VTableSetup.h
└── transform/
├── BasicBlockSpliter.cpp
├── BasicBlockSpliter.h
├── TemporaryMemoryArena.cpp
├── TemporaryMemoryArena.h
├── Transform.cpp
├── Transform.h
├── TransformContext.cpp
├── TransformContext.h
├── TransformContext_CallCommon.cpp
├── TransformContext_Instinct.cpp
├── TransformModule.cpp
└── TransformModule.h
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: ['https://raw.githubusercontent.com/focus-creative-games/hybridclr/main/docs/sponsor/weixin.JPG','https://raw.githubusercontent.com/focus-creative-games/hybridclr/main/docs/sponsor/zhifubao.JPG']
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug | 描述问题**
A clear and concise description of what the bug is.
** Enviroment | 环境 **
- Unity Version: 202x.y.z
- com.code-philosophy.hybridclr Version: 4.x.y
- Platform: Win 64 Standalone|Android|iOS| ...
**To Reproduce | 复制步骤 **
Please provide a reproduction project. Please try to reproduce this bug on the https://github.com/focus-creative-games/hybridclr_trial project. | 提供复现工程,请尽量在 https://github.com/focus-creative-games/hybridclr_trial 项目上复现这个bug。
Steps to reproduce the behavior :
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior | 期望的结果**
A clear and concise description of what you expected to happen.
**Screenshots | 截图或者日志**
If applicable, add screenshots to help explain your problem.
**Additional context | 补充信息**
Add any other context about the problem here.
================================================
FILE: .gitignore
================================================
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2023 Code Philosophy Technology Ltd.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
- [README 中文](./README.md)
- [README English](./README_EN.md)
# HybridCLR
[](https://github.com/focus-creative-games/hybridclr/blob/main/LICENSE)

<br/>
<br/>
HybridCLR是一个**特性完整、零成本、高性能、低内存**的**近乎完美**的Unity全平台原生c#热更新解决方案。
HybridCLR扩充了il2cpp运行时代码,使它由纯[AOT](https://en.wikipedia.org/wiki/Ahead-of-time_compilation) runtime变成AOT+Interpreter 混合runtime,进而原生支持动态加载assembly,从底层彻底支持了热更新。使用HybridCLR技术的游戏不仅能在Android平台,也能在IOS、Consoles、WebGL等所有il2cpp支持的平台上高效运行。
由于HybridCLR对ECMA-335规范 的良好支持以及对Unity开发工作流的高度兼容,Unity项目在接入HybridCLR后,可以几乎无缝地获得C#代码热更新的能力,开发者不需要改变日常开发习惯和要求。HybridCLR首次实现了将Unity平台的全平台代码热更新方案的工程难度降到几乎为零的水平。
欢迎拥抱现代原生C#热更新技术 !!!
## 文档
- [官方文档](https://www.hybridclr.cn/docs/intro)
- [快速上手](https://www.hybridclr.cn/docs/beginner/quickstart)
- [商业项目案例](https://www.hybridclr.cn/docs/other/businesscase)
- [LeanCLR](https://github.com/focus-creative-games/leanclr)
## 特性
- 近乎完整实现了[ECMA-335规范](https://www.ecma-international.org/publications-and-standards/standards/ecma-335/),只有极少量的[不支持的特性](https://www.hybridclr.cn/docs/basic/notsupportedfeatures)。
- 零学习和使用成本。对绝大多数开发者来说写代码近乎没有限制。 热更新代码与AOT代码无缝工作,可以随意写继承、**泛型**、**反射**之类的代码。不需要额外写任何特殊代码、没有代码生成
- 完全支持多线程,包含但不限于 volatile、ThreadStatic、async Task等相关功能和特性。这是其他所有热更新方案都不支持的
- 几乎完全兼容Unity的工作流。包括且不限于支持热更新**MonoBehaviour**、ScriptableObject、**DOTS**技术,资源上挂载的热更新脚本可以正确实例化,这是其他所有热更新方案都不支持的
- 执行高效。实现了一个极其高效的寄存器解释器,所有指标都大幅优于其他热更新方案。[性能测试报告](https://www.hybridclr.cn/docs/basic/performance)
- 内存高效。 热更新脚本中定义的类跟普通c#类占用一样的内存空间,远优于其他热更新方案。[内存占用报告](https://www.hybridclr.cn/docs/basic/memory)
- 支持MonoPInvokeCallback,可以与native代码或者其他语言如lua、javascript、python良好交互
- 支持一些il2cpp不支持的特性,如__makeref、 __reftype、__refvalue指令
- 支持独创的 **Differential Hybrid Execution(DHE)** 差分混合执行技术,即可以对AOT dll任意增删改,会智能地让未改动的函数以AOT方式运行,变化或者新增的函数以interpreter模式运行,让热更新的游戏逻辑的运行性能基本达到原生AOT的水平
- 支持 **热重载** 技术,可以100%卸载程序集
- 支持 **热修复** 技术,不需要重启游戏即可无感修复bug
- 支持现代的dll加密技术,有效保障代码安全
## 支持的版本与平台
- 支持2019.4.x、2020.3.x、2021.3.x、2022.3.x、2023.2.x、6000.x.y全系列LTS版本
- 支持所有il2cpp支持的平台
- 支持团结引擎和鸿蒙平台
## 工作原理
HybridCLR从mono的 [mixed mode execution](https://www.mono-project.com/news/2017/11/13/mono-interpreter/) 技术中得到启发,为unity的il2cpp之类的AOT runtime额外提供了interpreter模块,将它们由纯AOT运行时改造为"AOT + Interpreter"混合运行方式。

更具体地说,HybridCLR做了以下几点工作:
- 实现了一个高效的元数据(dll)解析库
- 改造了元数据管理模块,实现了元数据的动态注册
- 实现了一个IL指令集到自定义的寄存器指令集的compiler
- 实现了一个高效的寄存器解释器
- 额外提供大量的instinct函数,提升解释器性能
## 稳定性状况
HybridCLR已经被广泛验证是非常高效、稳定的Unity热更新解决方案,良好满足大中型商业项目的稳定和性能要求。
目前已经有数千个商业游戏项目接入了HybridCLR,其中有超过千个已经在App Store和Google Player上线,仅仅iOS免费榜前500名中就有近百款使用了HybridCLR。上线的项目中包括MMORPG、重度卡牌、重度塔防之类的游戏。国内绝大多数**Top游戏公司**都已经在使用HybridCLR。
可查看我们已知的头部公司中使用HybridCLR并且已经上线的[项目列表](https://www.hybridclr.cn/docs/other/businesscase)。
## 支持与联系
- 官方1群(3000人):651188171(满)
- 新手1群(3000人):428404198(满)
- 新手2群(2000人):680274677(满)
- 新手3群(2000人):**920714552(推荐)**
- discord频道:<https://discord.gg/BATfNfJnm2>
- 商业合作邮箱: business#code-philosophy.com
- [商业化支持](https://www.hybridclr.cn/docs/business/intro)
## 相关项目 LeanCLR
hybridclr仅是一个解释器模块,如果你需要一个完整小巧的适合发布到移动和小游戏平台的开源CLR实现,[LeanCLR](https://github.com/focus-creative-games/leanclr) 是当前最合适的方案。
LeanCLR 是一个面向全平台的精益 CLR(Common Language Runtime)实现。LeanCLR 在高度符合 ECMA-335 规范的前提下,提供更紧凑、易嵌入、低内存占用的运行时,实现对移动端、H5 与小游戏等资源受限平台的友好支持。LeanCLR原生支持 AOT + Interpreter 混合执行模式,内置 IL 与 IR 双解释器。
LeanCLR既可以独立嵌入到任何app和游戏项目,发布到任何平台,也可以**替代il2cpp作为Unity(团结引擎)发布到webgl和小游戏平台的运行时**。大幅缩减包体和内存开销。
## 关于作者
**walon** :**Code Philosophy(代码哲学)** 创始人
毕业于清华大学物理系,2006年CMO金牌,奥数国家集训队成员,保送清华基科班。专注于游戏技术,擅长开发架构和基础技术设施。
## license
HybridCLR is licensed under the [MIT](https://github.com/focus-creative-games/hybridclr/blob/main/LICENSE) license
================================================
FILE: README_EN.md
================================================
- [README Chinese](./README.md)
- [README English](./README_EN.md)
# HybridCLR
[](https://github.com/focus-creative-games/hybridclr/blob/main/LICENSE)

<br/>
<br/>
HybridCLR is a **feature-complete, zero-cost, high-performance, low-memory** and **nearly perfect** native C# hot update solution for Unity across all platforms.
HybridCLR extends the il2cpp runtime, transforming it from a pure [AOT](https://en.wikipedia.org/wiki/Ahead-of-time_compilation) runtime into a hybrid AOT+Interpreter runtime, natively supporting dynamic assembly loading and fundamentally enabling hot updates. Games using HybridCLR technology can run efficiently not only on Android but also on iOS, consoles, WebGL, and all platforms supported by il2cpp.
Thanks to HybridCLR's strong support for the ECMA-335 specification and high compatibility with Unity's development workflow, Unity projects can seamlessly gain C# hot update capabilities after integration, without developers needing to change their daily habits or requirements. HybridCLR is the first to reduce the engineering difficulty of full-platform code hot updates for Unity to nearly zero.
Embrace modern native C# hot update technology!
## Documentation
- [Official Documentation](https://www.hybridclr.cn/docs/intro)
- [Quick Start](https://www.hybridclr.cn/docs/beginner/quickstart)
- [Commercial Project Cases](https://www.hybridclr.cn/docs/other/businesscase)
- [LeanCLR](https://github.com/focus-creative-games/leanclr)
## Features
- Nearly complete implementation of the [ECMA-335 specification](https://www.ecma-international.org/publications-and-standards/standards/ecma-335/), with only a few [unsupported features](https://www.hybridclr.cn/docs/basic/notsupportedfeatures).
- Zero learning and usage cost. For most developers, there are almost no coding restrictions. Hot update code and AOT code work seamlessly; you can freely use inheritance, **generics**, **reflection**, etc. No need for special code or code generation.
- Full multi-threading support, including but not limited to volatile, ThreadStatic, async Task, and related features. This is not supported by any other hot update solution.
- Almost fully compatible with Unity's workflow, including support for hot update **MonoBehaviour**, ScriptableObject, **DOTS** technology, and correct instantiation of hot update scripts attached to resources. This is not supported by any other hot update solution.
- Efficient execution. Features an extremely efficient register interpreter, outperforming other hot update solutions in all metrics. [Performance Test Report](https://www.hybridclr.cn/docs/basic/performance)
- Memory efficient. Classes defined in hot update scripts occupy the same memory as regular C# classes, far superior to other hot update solutions. [Memory Usage Report](https://www.hybridclr.cn/docs/basic/memory)
- Supports MonoPInvokeCallback for good interaction with native code or other languages like lua, javascript, python.
- Supports some features not supported by il2cpp, such as __makeref, __reftype, __refvalue instructions.
- Supports the original **Differential Hybrid Execution (DHE)** technology, allowing arbitrary addition, deletion, and modification of AOT dlls. Unchanged functions run in AOT mode, changed or new functions run in interpreter mode, making hot update game logic performance nearly native AOT level.
- Supports **hot reload** technology, allowing 100% assembly unloading.
- Supports **hotfix** technology, enabling bug fixes without restarting the game.
- Supports modern dll encryption technology for effective code security.
## Supported Versions and Platforms
- Supports all LTS versions: 2019.4.x, 2020.3.x, 2021.3.x, 2022.3.x, 2023.2.x, 6000.x.y
- Supports all platforms supported by il2cpp
- Supports Unity Engine and HarmonyOS platforms
## How It Works
HybridCLR is inspired by mono's [mixed mode execution](https://www.mono-project.com/news/2017/11/13/mono-interpreter/) technology, providing an interpreter module for Unity's il2cpp and similar AOT runtimes, transforming them from pure AOT runtimes to "AOT + Interpreter" hybrid execution.
## Stability
HybridCLR has been widely validated as a highly efficient and stable Unity hot update solution, meeting the stability and performance requirements of medium and large commercial projects.
Thousands of commercial game projects have integrated HybridCLR, with over a thousand already launched on the App Store and Google Play. Nearly a hundred games in the top 500 free iOS chart use HybridCLR. Released projects include MMORPGs, heavy card games, tower defense, and more. Most top game companies in China are already using HybridCLR.
See our known list of top companies using HybridCLR and already launched [project list](https://www.hybridclr.cn/docs/other/businesscase).
## Support & Contact
- Official Group 1 (3000 members): 651188171 (full)
- Newbie Group 1 (3000 members): 428404198 (full)
- Newbie Group 2 (2000 members): 680274677 (full)
- Newbie Group 3 (2000 members): **920714552 (recommended)**
- Discord channel: <https://discord.gg/BATfNfJnm2>
- Business cooperation email: business#code-philosophy.com
- [Commercial Support](https://www.hybridclr.cn/docs/business/intro)
## LeanCLR Project
HybridCLR is just an interpreter module. If you need a complete, compact, open-source CLR implementation suitable for mobile and mini-game platforms, [LeanCLR](https://github.com/focus-creative-games/leanclr) is currently the best solution.
LeanCLR can be embedded independently into any app or game project and published to any platform. It can also **replace il2cpp as the runtime for Unity (Unity Engine) when publishing to webgl and mini-game platforms**, greatly reducing package size and memory usage.
## About the Author
**walon**: Founder of **Code Philosophy**
Graduated from Tsinghua University, Department of Physics. 2006 CMO gold medalist, member of the national math olympiad training team, admitted to Tsinghua's basic science class. Focused on game technology, skilled in development architecture and core technical infrastructure.
## License
HybridCLR is licensed under the [MIT](https://github.com/focus-creative-games/hybridclr/blob/main/LICENSE) license
- [README Chinese](./README.md)
- [README English](./README_EN.md)
================================================
FILE: docs/_config.yml
================================================
theme: jekyll-theme-slate
================================================
FILE: hybridclr/CommonDef.cpp
================================================
#include <iostream>
#include "CommonDef.h"
namespace hybridclr
{
void LogPanic(const char* errMsg)
{
std::cerr << "panic:" << std::endl;
std::cerr << "\t" << errMsg << std::endl;
exit(1);
}
const char* GetAssemblyNameFromPath(const char* assPath)
{
const char* last = nullptr;
for (const char* p = assPath; *p; p++)
{
if (*p == '/' || *p == '\\')
{
last = p + 1;
}
}
return last ? last : assPath;
}
const char* CopyString(const char* src)
{
size_t len = std::strlen(src);
char* dst = (char*)HYBRIDCLR_MALLOC(len + 1);
std::strcpy(dst, src);
return dst;
}
const char* ConcatNewString(const char* s1, const char* s2)
{
size_t len1 = std::strlen(s1);
size_t len = len1 + std::strlen(s2);
char* dst = (char*)HYBRIDCLR_MALLOC(len + 1);
std::strcpy(dst, s1);
strcpy(dst + len1, s2);
return dst;
}
void* CopyBytes(const void* src, size_t length)
{
void* dst = HYBRIDCLR_MALLOC(length);
std::memcpy(dst, src, length);
return dst;
}
}
================================================
FILE: hybridclr/CommonDef.h
================================================
#pragma once
#include <stdint.h>
#include <cstring>
#include <memory>
#include "Il2CppCompatibleDef.h"
#include "utils/Memory.h"
#include "utils/StringView.h"
#include "utils/Il2CppHashSet.h"
#include "utils/Il2CppHashMap.h"
#include "utils/HashUtils.h"
#include "vm/GlobalMetadataFileInternals.h"
#include "vm/Exception.h"
#include "vm/Class.h"
#include "icalls/mscorlib/System/Type.h"
#ifdef HYBRIDCLR_UNITY_2021_OR_NEW
#include "icalls/mscorlib/System/RuntimeType.h"
#else
#include "icalls/mscorlib/System/MonoType.h"
#endif
namespace hybridclr
{
typedef uint8_t byte;
#define TEMP_FORMAT(var, fmt, ...) char var[600]; \
snprintf(var, sizeof(var), fmt, __VA_ARGS__);
void LogPanic(const char* errMsg);
const char* GetAssemblyNameFromPath(const char* assPath);
const char* CopyString(const char* src);
const char* ConcatNewString(const char* s1, const char* s2);
void* CopyBytes(const void* src, size_t length);
struct CStringHash
{
size_t operator()(const char* s) const noexcept
{
uint32_t hash = 0;
for (; *s; ++s)
{
hash += *s;
hash += (hash << 10);
hash ^= (hash >> 6);
}
hash += (hash << 3);
hash ^= (hash >> 11);
hash += (hash << 15);
return hash;
}
};
struct CStringEqualTo
{
bool operator()(const char* _Left, const char* _Right) const
{
return std::strcmp(_Left, _Right) == 0;
}
};
inline il2cpp::utils::StringView<char> CStringToStringView(const char* str)
{
return il2cpp::utils::StringView<char>(str, std::strlen(str));
}
inline std::string GetKlassCStringFullName(const Il2CppType* type)
{
return GetKlassFullName2(type);
}
inline void RaiseNotSupportedException(const char* msg)
{
TEMP_FORMAT(errMsg, "hybridclr doesn't support %s", msg);
return il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetNotSupportedException(errMsg));
}
inline void RaiseExecutionEngineException(const char* msg)
{
return il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetExecutionEngineException(msg));
}
inline void RaiseMethodNotFindException(const Il2CppType* type, const char* methodName)
{
if (!type)
{
il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetTypeLoadException("type not exists"));
}
std::string fullName = GetKlassCStringFullName(type);
TEMP_FORMAT(errMsg, "MethodNotFind %s::%s", fullName.c_str(), methodName);
il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetMissingMethodException(errMsg));
}
inline void AppendTypeName(std::string& s, const Il2CppType* type)
{
s.append(GetKlassCStringFullName(type));
}
inline std::string GetMethodNameWithSignature(const MethodInfo* method)
{
std::string name;
AppendTypeName(name, method->return_type);
name.append(" ");
name.append(GetKlassCStringFullName(&method->klass->byval_arg));
name.append("::");
name.append(method->name);
if (method->genericMethod && method->genericMethod->context.method_inst)
{
name.append("<");
const Il2CppGenericInst* gi= method->genericMethod->context.method_inst;
for (uint32_t i = 0; i < gi->type_argc; i++)
{
if (i > 0)
{
name.append(",");
}
AppendTypeName(name, gi->type_argv[i]);
}
name.append(">");
}
name.append("(");
for (uint8_t i = 0; i < method->parameters_count; i++)
{
if (i > 0)
{
name.append(",");
}
AppendTypeName(name, GET_METHOD_PARAMETER_TYPE(method->parameters[i]));
}
name.append(")");
return name;
}
inline void RaiseAOTGenericMethodNotInstantiatedException(const MethodInfo* method)
{
std::string methodName = GetMethodNameWithSignature(method);
TEMP_FORMAT(errMsg, "AOT generic method not instantiated in aot. assembly:%s, method:%s", method->klass->image->name, methodName.c_str());
il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetMissingMethodException(errMsg));
}
inline void RaiseMissingFieldException(const Il2CppType* type, const char* fieldName)
{
if (!type)
{
il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetTypeLoadException("type not exists"));
}
std::string stdFullName = GetKlassCStringFullName(type);
TEMP_FORMAT(errMsg, "field %s::%s not exists", stdFullName.c_str(), fieldName);
il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetMissingFieldException(errMsg));
}
}
================================================
FILE: hybridclr/Il2CppCompatibleDef.cpp
================================================
#include "Il2CppCompatibleDef.h"
#include "vm/Runtime.h"
#include "metadata/MetadataModule.h"
#include "interpreter/InterpreterModule.h"
namespace hybridclr
{
Il2CppMethodPointer InitAndGetInterpreterDirectlyCallMethodPointerSlow(MethodInfo* method)
{
IL2CPP_ASSERT(!method->initInterpCallMethodPointer);
method->initInterpCallMethodPointer = true;
bool isAdjustorThunkMethod = IS_CLASS_VALUE_TYPE(method->klass) && hybridclr::metadata::IsInstanceMethod(method);
if (hybridclr::metadata::MetadataModule::IsImplementedByInterpreter(method))
{
method->methodPointerCallByInterp = interpreter::InterpreterModule::GetMethodPointer(method);
if (isAdjustorThunkMethod)
{
method->virtualMethodPointerCallByInterp = interpreter::InterpreterModule::GetAdjustThunkMethodPointer(method);
}
else
{
method->virtualMethodPointerCallByInterp = method->methodPointerCallByInterp;
}
if (method->invoker_method == nullptr
#if HYBRIDCLR_UNITY_2021_OR_NEW
|| method->invoker_method == il2cpp::vm::Runtime::GetMissingMethodInvoker()
|| method->has_full_generic_sharing_signature
#endif
)
{
method->invoker_method = hybridclr::interpreter::InterpreterModule::GetMethodInvoker(method);
}
#if HYBRIDCLR_UNITY_2021_OR_NEW
if (method->methodPointer == nullptr || method->has_full_generic_sharing_signature)
{
method->methodPointer = method->methodPointerCallByInterp;
}
if (method->virtualMethodPointer == nullptr || method->has_full_generic_sharing_signature)
{
method->virtualMethodPointer = method->virtualMethodPointerCallByInterp;
}
#else
if (method->methodPointer == nullptr)
{
method->methodPointer = method->virtualMethodPointerCallByInterp;
}
#endif
method->isInterpterImpl = true;
}
return method->methodPointerCallByInterp;
}
}
================================================
FILE: hybridclr/Il2CppCompatibleDef.h
================================================
#pragma once
#include "il2cpp-config.h"
#include "codegen/il2cpp-codegen-metadata.h"
#include "il2cpp-class-internals.h"
#include "vm/Array.h"
#include "vm/Type.h"
#include "vm/Runtime.h"
#include "vm/GlobalMetadataFileInternals.h"
#include "vm/MetadataAlloc.h"
#include "icalls/mscorlib/System/Type.h"
#include "gc/GarbageCollector.h"
#if HYBRIDCLR_UNITY_2020
#include "icalls/mscorlib/System/MonoType.h"
#elif HYBRIDCLR_UNITY_2021_OR_NEW
#include "icalls/mscorlib/System/RuntimeType.h"
#include "icalls/mscorlib/System/RuntimeTypeHandle.h"
#elif HYBRIDCLR_UNITY_2019
#include "icalls/mscorlib/System/MonoType.h"
#if IL2CPP_SIZEOF_VOID_P == 8
#define PLATFORM_ARCH_64 1
#else
#define PLATFORM_ARCH_64 0
#endif
#elif !defined(HYBRIDCLR_UNITY_VERSION)
#error "please run 'HybridCLR/Generate/All' before building"
#else
#error "unsupported unity version"
#endif
#if IL2CPP_BYTE_ORDER != IL2CPP_LITTLE_ENDIAN
#error "only support litten endian"
#endif
#if PLATFORM_ARCH_64
#define HYBRIDCLR_ARCH_64 1
#else
#define HYBRIDCLR_ARCH_64 0
#endif
#define PTR_SIZE IL2CPP_SIZEOF_VOID_P
#if HYBRIDCLR_ARCH_64 || HYBRIDCLR_TARGET_X86
#define SUPPORT_MEMORY_NOT_ALIGMENT_ACCESS 1
#else
#define SUPPORT_MEMORY_NOT_ALIGMENT_ACCESS 0
#endif
#ifndef ENABLE_PLACEHOLDER_DLL
#define ENABLE_PLACEHOLDER_DLL 1
#endif
#if IL2CPP_ENABLE_WRITE_BARRIERS
#define HYBRIDCLR_ENABLE_WRITE_BARRIERS 1
#else
#define HYBRIDCLR_ENABLE_WRITE_BARRIERS 0
#endif
#ifndef HYBRIDCLR_ENABLE_PROFILER
#define HYBRIDCLR_ENABLE_PROFILER IL2CPP_ENABLE_PROFILER
#endif
#ifndef HYBRIDCLR_ENABLE_STRACKTRACE
#define HYBRIDCLR_ENABLE_STRACKTRACE IL2CPP_ENABLE_STACKTRACE_SENTRIES
#endif
#if UNITY_ENGINE_TUANJIE
#define HYBRIDCLR_MALLOC(size) IL2CPP_MALLOC(size, IL2CPP_MEM_META_POOL)
#define HYBRIDCLR_MALLOC_ALIGNED(size, alignment) IL2CPP_MALLOC_ALIGNED(size, alignment, IL2CPP_MEM_META_POOL)
#define HYBRIDCLR_MALLOC_ZERO(size) IL2CPP_MALLOC_ZERO(size, IL2CPP_MEM_META_POOL)
#define HYBRIDCLR_CALLOC(count, size) IL2CPP_CALLOC(count, size, IL2CPP_MEM_META_POOL)
#define HYBRIDCLR_FREE(ptr) IL2CPP_FREE(ptr, IL2CPP_MEM_META_POOL)
#define HYBRIDCLR_FREE_ALIGNED(ptr) IL2CPP_FREE_ALIGNED(ptr, IL2CPP_MEM_META_POOL)
#define HYBRIDCLR_METADATA_MALLOC(size) il2cpp::vm::MetadataMalloc(size, IL2CPP_MSTAT_TYPE)
#define HYBRIDCLR_METADATA_CALLOC(count, size) il2cpp::vm::MetadataCalloc(count, size, IL2CPP_MSTAT_TYPE)
#else
#define HYBRIDCLR_MALLOC(size) IL2CPP_MALLOC(size)
#define HYBRIDCLR_MALLOC_ALIGNED(size, alignment) IL2CPP_MALLOC_ALIGNED(size, alignment)
#define HYBRIDCLR_MALLOC_ZERO(size) IL2CPP_MALLOC_ZERO(size)
#define HYBRIDCLR_CALLOC(count, size) IL2CPP_CALLOC(count, size)
#define HYBRIDCLR_FREE(ptr) IL2CPP_FREE(ptr)
#define HYBRIDCLR_FREE_ALIGNED(ptr) IL2CPP_FREE_ALIGNED(ptr)
#define HYBRIDCLR_METADATA_MALLOC(size) il2cpp::vm::MetadataMalloc(size)
#define HYBRIDCLR_METADATA_CALLOC(count, size) il2cpp::vm::MetadataCalloc(count, size)
#endif
namespace hybridclr
{
extern const char* g_placeHolderAssemblies[];
Il2CppMethodPointer InitAndGetInterpreterDirectlyCallMethodPointerSlow(MethodInfo* method);
inline Il2CppMethodPointer InitAndGetInterpreterDirectlyCallMethodPointer(const MethodInfo* method)
{
Il2CppMethodPointer methodPointer = method->methodPointerCallByInterp;
if (methodPointer)
{
return methodPointer;
}
if (method->initInterpCallMethodPointer)
{
return methodPointer;
}
return InitAndGetInterpreterDirectlyCallMethodPointerSlow(const_cast<MethodInfo*>(method));
}
inline Il2CppMethodPointer InitAndGetInterpreterDirectlyCallVirtualMethodPointer(const MethodInfo* method)
{
Il2CppMethodPointer methodPointer = method->virtualMethodPointerCallByInterp;
if (methodPointer)
{
return methodPointer;
}
if (method->initInterpCallMethodPointer)
{
return methodPointer;
}
InitAndGetInterpreterDirectlyCallMethodPointerSlow(const_cast<MethodInfo*>(method));
return method->virtualMethodPointerCallByInterp;
}
inline void HYBRIDCLR_SET_WRITE_BARRIER(void** ptr)
{
#if HYBRIDCLR_ENABLE_WRITE_BARRIERS
il2cpp::gc::GarbageCollector::SetWriteBarrier(ptr);
#endif
}
inline void HYBRIDCLR_SET_WRITE_BARRIER(void** ptr, size_t size)
{
#if HYBRIDCLR_ENABLE_WRITE_BARRIERS
il2cpp::gc::GarbageCollector::SetWriteBarrier(ptr, size);
#endif
}
}
#if HYBRIDCLR_UNITY_2019 || HYBRIDCLR_UNITY_2020
inline bool IS_CLASS_VALUE_TYPE(const Il2CppClass* klass)
{
return klass->valuetype;
}
inline bool IS_CCTOR_FINISH_OR_NO_CCTOR(const Il2CppClass* klass)
{
return (klass->cctor_finished) || !(klass->has_cctor);
}
inline const Il2CppType* GET_METHOD_PARAMETER_TYPE(const ParameterInfo& param)
{
return param.parameter_type;
}
inline uint32_t GET_CUSTOM_ATTRIBUTE_TYPE_RANGE_START(const Il2CppCustomAttributeTypeRange& tr)
{
return tr.start;
}
inline void SET_IL2CPPTYPE_VALUE_TYPE(Il2CppType& type, bool v)
{
}
inline void COPY_IL2CPPTYPE_VALUE_TYPE_FLAG(Il2CppType& dst, const Il2CppType& src)
{
}
#define GET_ARRAY_ELEMENT_ADDRESS load_array_elema
#define VALUE_TYPE_METHOD_POINTER_IS_ADJUST_METHOD 1
namespace hybridclr
{
inline Il2CppReflectionType* GetReflectionTypeFromName(Il2CppString* name)
{
return il2cpp::icalls::mscorlib::System::Type::internal_from_name(name, true, false);
}
inline void ConstructDelegate(Il2CppDelegate* delegate, Il2CppObject* target, const MethodInfo* method)
{
delegate->method_ptr = InitAndGetInterpreterDirectlyCallVirtualMethodPointer(method);
delegate->method = method;
delegate->target = target;
#if HYBRIDCLR_ENABLE_WRITE_BARRIERS
if (target)
{
HYBRIDCLR_SET_WRITE_BARRIER((void**)&delegate->target);
}
#endif
//il2cpp::vm::Type::ConstructDelegate(delegate, target, InitAndGetInterpreterDirectlyCallMethodPointer(method), method);
}
inline const MethodInfo* GetGenericVirtualMethod(const MethodInfo* result, const MethodInfo* inflateMethod)
{
return il2cpp::vm::Runtime::GetGenericVirtualMethod(result, inflateMethod);
}
inline void* GetNulllableDataOffset(void* nullableObj, Il2CppClass* nullableClass)
{
uint32_t field_offset = nullableClass->fields[0].offset - sizeof(Il2CppObject); // offset of value field
return (uint8_t*)nullableObj + field_offset;
}
inline uint8_t* GetNulllableHasValueOffset(void* nullableObj, Il2CppClass* nullableClass)
{
uint32_t field_offset = nullableClass->fields[1].offset - sizeof(Il2CppObject); // offset of has_value field
return (uint8_t*)nullableObj + field_offset;
}
inline Il2CppString* GetKlassFullName(const Il2CppType* type)
{
Il2CppReflectionType* refType = il2cpp::icalls::mscorlib::System::Type::internal_from_handle((intptr_t)type);
return il2cpp::icalls::mscorlib::System::MonoType::getFullName(refType, false, false);
}
inline std::string GetKlassFullName2(const Il2CppType* type)
{
Il2CppReflectionType* refType = il2cpp::icalls::mscorlib::System::Type::internal_from_handle((intptr_t)type);
return il2cpp::icalls::mscorlib::System::MonoType::getFullName2(refType, false, false);
}
}
#elif HYBRIDCLR_UNITY_2021_OR_NEW
inline bool IS_CLASS_VALUE_TYPE(const Il2CppClass* klass)
{
return klass->byval_arg.valuetype;
}
inline bool IS_CCTOR_FINISH_OR_NO_CCTOR(const Il2CppClass* klass)
{
return klass->cctor_finished_or_no_cctor;
}
inline const Il2CppType* GET_METHOD_PARAMETER_TYPE(const Il2CppType* param)
{
return param;
}
inline uint32_t GET_CUSTOM_ATTRIBUTE_TYPE_RANGE_START(const Il2CppCustomAttributeTypeRange& tr)
{
return tr.startOffset;
}
inline void SET_IL2CPPTYPE_VALUE_TYPE(Il2CppType& type, bool v)
{
type.valuetype = v;
}
inline void COPY_IL2CPPTYPE_VALUE_TYPE_FLAG(Il2CppType& dst, const Il2CppType& src)
{
dst.valuetype = src.valuetype;
}
#define GET_ARRAY_ELEMENT_ADDRESS il2cpp_array_addr_with_size
#define VALUE_TYPE_METHOD_POINTER_IS_ADJUST_METHOD 0
namespace hybridclr
{
inline Il2CppReflectionType* GetReflectionTypeFromName(Il2CppString* name)
{
return il2cpp::icalls::mscorlib::System::RuntimeTypeHandle::internal_from_name(name, nullptr, nullptr, true, false, false);
}
inline void ConstructDelegate(Il2CppDelegate* delegate, Il2CppObject* target, const MethodInfo* method)
{
delegate->target = target;
delegate->method = method;
delegate->invoke_impl = InitAndGetInterpreterDirectlyCallVirtualMethodPointer(method);
delegate->invoke_impl_this = target;
#if HYBRIDCLR_ENABLE_WRITE_BARRIERS
if (target)
{
HYBRIDCLR_SET_WRITE_BARRIER((void**)&delegate->target);
HYBRIDCLR_SET_WRITE_BARRIER((void**)&delegate->invoke_impl_this);
}
#endif
}
inline const MethodInfo* GetGenericVirtualMethod(const MethodInfo* result, const MethodInfo* inflateMethod)
{
#if HYBRIDCLR_UNITY_2021
VirtualInvokeData vid;
il2cpp::vm::Runtime::GetGenericVirtualMethod(result, inflateMethod, &vid);
return vid.method;
#else
return il2cpp::metadata::GenericMethod::GetGenericVirtualMethod(result, inflateMethod);
#endif
}
inline void* GetNulllableDataOffset(void* nullableObj, Il2CppClass* nullableClass)
{
uint32_t field_offset = nullableClass->fields[1].offset - sizeof(Il2CppObject); // offset of value field
return (uint8_t*)nullableObj + field_offset;
}
inline uint8_t* GetNulllableHasValueOffset(void* nullableObj, Il2CppClass* nullableClass)
{
uint32_t field_offset = nullableClass->fields[0].offset - sizeof(Il2CppObject); // offset of has_value field
return (uint8_t*)nullableObj + field_offset;
}
inline Il2CppString* GetKlassFullName(const Il2CppType* type)
{
Il2CppReflectionType* refType = il2cpp::icalls::mscorlib::System::Type::internal_from_handle((intptr_t)type);
return il2cpp::icalls::mscorlib::System::RuntimeType::getFullName((Il2CppReflectionRuntimeType*)refType, false, false);
}
inline std::string GetKlassFullName2(const Il2CppType* type)
{
Il2CppReflectionType* refType = il2cpp::icalls::mscorlib::System::Type::internal_from_handle((intptr_t)type);
return il2cpp::icalls::mscorlib::System::RuntimeType::getFullName2((Il2CppReflectionRuntimeType*)refType, false, false);
}
}
#endif
================================================
FILE: hybridclr/Runtime.cpp
================================================
#include "Runtime.h"
#include "vm/Exception.h"
#include "vm/String.h"
#include "vm/Assembly.h"
#include "vm/Class.h"
#include "vm/Object.h"
#include "vm/Reflection.h"
#include "icalls/mscorlib/System.Reflection/Assembly.h"
#include "RuntimeApi.h"
#include "interpreter/InterpreterModule.h"
#include "metadata/MetadataModule.h"
#include "transform/TransformModule.h"
namespace hybridclr
{
void Runtime::Initialize()
{
RuntimeApi::RegisterInternalCalls();
metadata::MetadataModule::Initialize();
interpreter::InterpreterModule::Initialize();
transform::TransformModule::Initialize();
}
}
================================================
FILE: hybridclr/Runtime.h
================================================
#pragma once
#include "CommonDef.h"
namespace hybridclr
{
class Runtime
{
public:
static void Initialize();
};
}
================================================
FILE: hybridclr/RuntimeApi.cpp
================================================
#include "RuntimeApi.h"
#include "codegen/il2cpp-codegen.h"
#include "vm/InternalCalls.h"
#include "vm/Array.h"
#include "vm/Exception.h"
#include "vm/Class.h"
#include "metadata/MetadataModule.h"
#include "metadata/MetadataUtil.h"
#include "interpreter/InterpreterModule.h"
#include "RuntimeConfig.h"
namespace hybridclr
{
void RuntimeApi::RegisterInternalCalls()
{
il2cpp::vm::InternalCalls::Add("HybridCLR.RuntimeApi::LoadMetadataForAOTAssembly(System.Byte[],HybridCLR.HomologousImageMode)", (Il2CppMethodPointer)LoadMetadataForAOTAssembly);
il2cpp::vm::InternalCalls::Add("HybridCLR.RuntimeApi::GetRuntimeOption(HybridCLR.RuntimeOptionId)", (Il2CppMethodPointer)GetRuntimeOption);
il2cpp::vm::InternalCalls::Add("HybridCLR.RuntimeApi::SetRuntimeOption(HybridCLR.RuntimeOptionId,System.Int32)", (Il2CppMethodPointer)SetRuntimeOption);
il2cpp::vm::InternalCalls::Add("HybridCLR.RuntimeApi::PreJitClass(System.Type)", (Il2CppMethodPointer)PreJitClass);
il2cpp::vm::InternalCalls::Add("HybridCLR.RuntimeApi::PreJitMethod(System.Reflection.MethodInfo)", (Il2CppMethodPointer)PreJitMethod);
}
int32_t RuntimeApi::LoadMetadataForAOTAssembly(Il2CppArray* dllBytes, int32_t mode)
{
if (!dllBytes)
{
il2cpp::vm::Exception::RaiseNullReferenceException();
}
return (int32_t)hybridclr::metadata::Assembly::LoadMetadataForAOTAssembly(il2cpp::vm::Array::GetFirstElementAddress(dllBytes), il2cpp::vm::Array::GetByteLength(dllBytes), (hybridclr::metadata::HomologousImageMode)mode);
}
int32_t RuntimeApi::GetRuntimeOption(int32_t optionId)
{
return hybridclr::RuntimeConfig::GetRuntimeOption((hybridclr::RuntimeOptionId)optionId);
}
void RuntimeApi::SetRuntimeOption(int32_t optionId, int32_t value)
{
hybridclr::RuntimeConfig::SetRuntimeOption((hybridclr::RuntimeOptionId)optionId, value);
}
int32_t PreJitMethod0(const MethodInfo* methodInfo);
int32_t RuntimeApi::PreJitClass(Il2CppReflectionType* type)
{
if (metadata::HasNotInstantiatedGenericType(type->type))
{
return false;
}
Il2CppClass* klass = il2cpp::vm::Class::FromIl2CppType(type->type, false);
if (!klass)
{
return false;
}
metadata::Image* image = metadata::MetadataModule::GetImage(klass->image);
if (!image)
{
image = (metadata::Image*)hybridclr::metadata::AOTHomologousImage::FindImageByAssembly(
klass->rank ? il2cpp_defaults.corlib->assembly : klass->image->assembly);
if (!image)
{
return false;
}
}
for (uint16_t i = 0; i < klass->method_count; i++)
{
const MethodInfo* methodInfo = klass->methods[i];
PreJitMethod0(methodInfo);
}
return true;
}
int32_t PreJitMethod0(const MethodInfo* methodInfo)
{
if (!methodInfo->isInterpterImpl)
{
return false;
}
if (methodInfo->klass->is_generic)
{
return false;
}
if (!methodInfo->is_inflated)
{
if (methodInfo->is_generic)
{
return false;
}
}
else
{
const Il2CppGenericMethod* genericMethod = methodInfo->genericMethod;
if (metadata::HasNotInstantiatedGenericType(genericMethod->context.class_inst) || metadata::HasNotInstantiatedGenericType(genericMethod->context.method_inst))
{
return false;
}
}
return interpreter::InterpreterModule::GetInterpMethodInfo(methodInfo) != nullptr;
}
int32_t RuntimeApi::PreJitMethod(Il2CppReflectionMethod* method)
{
return PreJitMethod0(method->method);
}
}
================================================
FILE: hybridclr/RuntimeApi.h
================================================
#pragma once
#include <stdint.h>
#include "CommonDef.h"
namespace hybridclr
{
class RuntimeApi
{
public:
static void RegisterInternalCalls();
static int32_t LoadMetadataForAOTAssembly(Il2CppArray* dllData, int32_t mode);
static int32_t GetRuntimeOption(int32_t optionId);
static void SetRuntimeOption(int32_t optionId, int32_t value);
static int32_t PreJitClass(Il2CppReflectionType* type);
static int32_t PreJitMethod(Il2CppReflectionMethod* method);
};
}
================================================
FILE: hybridclr/RuntimeConfig.cpp
================================================
#include "RuntimeConfig.h"
#include "vm/Exception.h"
namespace hybridclr
{
static int32_t s_threadObjectStackSize = 1024 * 128;
static int32_t s_threadFrameStackSize = 1024 * 2;
static int32_t s_threadExceptionFlowSize = 512;
static int32_t s_maxMethodBodyCacheSize = 1024;
static int32_t s_maxMethodInlineDepth = 3;
static int32_t s_maxInlineableMethodBodySize = 32;
int32_t RuntimeConfig::GetRuntimeOption(RuntimeOptionId optionId)
{
switch (optionId)
{
case RuntimeOptionId::InterpreterThreadObjectStackSize:
return s_threadObjectStackSize;
case RuntimeOptionId::InterpreterThreadFrameStackSize:
return s_threadFrameStackSize;
case RuntimeOptionId::InterpreterThreadExceptionFlowSize:
return s_threadExceptionFlowSize;
case RuntimeOptionId::MaxMethodBodyCacheSize:
return s_maxMethodBodyCacheSize;
case RuntimeOptionId::MaxMethodInlineDepth:
return s_maxMethodInlineDepth;
case RuntimeOptionId::MaxInlineableMethodBodySize:
return s_maxInlineableMethodBodySize;
default:
{
TEMP_FORMAT(optionIdStr, "%d", optionId);
il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetArgumentException(optionIdStr, "invalid runtime option id"));
return 0;
}
}
}
void RuntimeConfig::SetRuntimeOption(RuntimeOptionId optionId, int32_t value)
{
switch (optionId)
{
case hybridclr::RuntimeOptionId::InterpreterThreadObjectStackSize:
s_threadObjectStackSize = value;
break;
case hybridclr::RuntimeOptionId::InterpreterThreadFrameStackSize:
s_threadFrameStackSize = value;
break;
case hybridclr::RuntimeOptionId::InterpreterThreadExceptionFlowSize:
s_threadExceptionFlowSize = value;
break;
case RuntimeOptionId::MaxMethodBodyCacheSize:
s_maxMethodBodyCacheSize = value;
break;
case RuntimeOptionId::MaxMethodInlineDepth:
s_maxMethodInlineDepth = value;
break;
case RuntimeOptionId::MaxInlineableMethodBodySize:
s_maxInlineableMethodBodySize = value;
break;
default:
{
TEMP_FORMAT(optionIdStr, "%d", optionId);
il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetArgumentException(optionIdStr, "invalid runtime option id"));
break;
}
}
}
uint32_t RuntimeConfig::GetInterpreterThreadObjectStackSize()
{
return s_threadObjectStackSize;
}
uint32_t RuntimeConfig::GetInterpreterThreadFrameStackSize()
{
return s_threadFrameStackSize;
}
uint32_t RuntimeConfig::GetInterpreterThreadExceptionFlowSize()
{
return s_threadExceptionFlowSize;
}
int32_t RuntimeConfig::GetMaxMethodBodyCacheSize()
{
return s_maxMethodBodyCacheSize;
}
int32_t RuntimeConfig::GetMaxMethodInlineDepth()
{
return s_maxMethodInlineDepth;
}
int32_t RuntimeConfig::GetMaxInlineableMethodBodySize()
{
return s_maxInlineableMethodBodySize;
}
}
================================================
FILE: hybridclr/RuntimeConfig.h
================================================
#pragma once
#include "CommonDef.h"
namespace hybridclr
{
enum class RuntimeOptionId
{
InterpreterThreadObjectStackSize = 1,
InterpreterThreadFrameStackSize = 2,
InterpreterThreadExceptionFlowSize = 3,
MaxMethodBodyCacheSize = 4,
MaxMethodInlineDepth = 5,
MaxInlineableMethodBodySize = 6,
};
class RuntimeConfig
{
public:
static int32_t GetRuntimeOption(RuntimeOptionId optionId);
static void SetRuntimeOption(RuntimeOptionId optionId, int32_t value);
static uint32_t GetInterpreterThreadObjectStackSize();
static uint32_t GetInterpreterThreadFrameStackSize();
static uint32_t GetInterpreterThreadExceptionFlowSize();
static int32_t GetMaxMethodBodyCacheSize();
static int32_t GetMaxMethodInlineDepth();
static int32_t GetMaxInlineableMethodBodySize();
};
}
================================================
FILE: hybridclr/generated/AssemblyManifest.cpp
================================================
#include "../Il2CppCompatibleDef.h"
namespace hybridclr
{
const char* g_placeHolderAssemblies[] =
{
//!!!{{PLACE_HOLDER
//!!!}}PLACE_HOLDER
nullptr,
};
}
================================================
FILE: hybridclr/generated/MethodBridge.cpp
================================================
#include <codegen/il2cpp-codegen-metadata.h>
#if HYBRIDCLR_UNITY_2023_OR_NEW
#include <codegen/il2cpp-codegen.h>
#elif HYBRIDCLR_UNITY_2022
#include <codegen/il2cpp-codegen-il2cpp.h>
#elif HYBRIDCLR_UNITY_2020 || HYBRIDCLR_UNITY_2021
#include <codegen/il2cpp-codegen-common-big.h>
#else
#include <codegen/il2cpp-codegen-common.h>
#endif
#include "vm/ClassInlines.h"
#include "vm/Object.h"
#include "vm/Class.h"
#include "vm/ScopedThreadAttacher.h"
#include "../metadata/MetadataUtil.h"
#include "../interpreter/InterpreterModule.h"
#include "../interpreter/MethodBridge.h"
#include "../interpreter/Interpreter.h"
#include "../interpreter/MemoryUtil.h"
#include "../interpreter/InstrinctDef.h"
using namespace hybridclr::interpreter;
using namespace hybridclr::metadata;
//!!!{{CODE
const FullName2Signature hybridclr::interpreter::g_fullName2SignatureStub[] = {
{ nullptr, nullptr},
};
const Managed2NativeMethodInfo hybridclr::interpreter::g_managed2nativeStub[] =
{
{nullptr, nullptr},
};
const Native2ManagedMethodInfo hybridclr::interpreter::g_native2managedStub[] =
{
{nullptr, nullptr},
};
const NativeAdjustThunkMethodInfo hybridclr::interpreter::g_adjustThunkStub[] =
{
{nullptr, nullptr},
};
const ReversePInvokeMethodData hybridclr::interpreter::g_reversePInvokeMethodStub[]
{
{nullptr, nullptr},
};
const Managed2NativeFunctionPointerCallData hybridclr::interpreter::g_managed2NativeFunctionPointerCallStub[]
{
{nullptr, nullptr},
};
//!!!}}CODE
================================================
FILE: hybridclr/generated/UnityVersion.h
================================================
#pragma once
//!!!{{UNITY_VERSION
//!!!}}UNITY_VERSION
================================================
FILE: hybridclr/interpreter/Engine.cpp
================================================
#include "Engine.h"
#include "codegen/il2cpp-codegen.h"
#include "Interpreter.h"
#include "MemoryUtil.h"
#include "../metadata/InterpreterImage.h"
#include "../metadata/MetadataModule.h"
namespace hybridclr
{
namespace interpreter
{
#if HYBRIDCLR_ENABLE_STRACKTRACE
#define PUSH_STACK_FRAME(method, rawIp) do { \
Il2CppStackFrameInfo stackFrameInfo = { method, rawIp }; \
il2cpp::vm::StackTrace::PushFrame(stackFrameInfo); \
} while(0)
#define POP_STACK_FRAME() do { il2cpp::vm::StackTrace::PopFrame(); } while(0)
#else
#define PUSH_STACK_FRAME(method, rawIp)
#define POP_STACK_FRAME()
#endif
InterpFrame* InterpFrameGroup::EnterFrameFromInterpreter(const MethodInfo* method, StackObject* argBase)
{
#if HYBRIDCLR_ENABLE_PROFILER
il2cpp_codegen_profiler_method_enter(method);
#endif
const InterpMethodInfo* imi = (const InterpMethodInfo*)method->interpData;
int32_t oldStackTop = _machineState.GetStackTop();
StackObject* stackBasePtr = _machineState.AllocStackSlot(imi->maxStackSize - imi->argStackObjectSize);
InterpFrame* newFrame = _machineState.PushFrame();
*newFrame = { method, argBase, oldStackTop, nullptr, nullptr, nullptr, 0, 0, _machineState.GetLocalPoolBottomIdx() };
PUSH_STACK_FRAME(method, (uintptr_t)newFrame);
return newFrame;
}
InterpFrame* InterpFrameGroup::EnterFrameFromNative(const MethodInfo* method, StackObject* argBase)
{
#if HYBRIDCLR_ENABLE_PROFILER
il2cpp_codegen_profiler_method_enter(method);
#endif
const InterpMethodInfo* imi = (const InterpMethodInfo*)method->interpData;
int32_t oldStackTop = _machineState.GetStackTop();
StackObject* stackBasePtr = _machineState.AllocStackSlot(imi->maxStackSize);
InterpFrame* newFrame = _machineState.PushFrame();
*newFrame = { method, stackBasePtr, oldStackTop, nullptr, nullptr, nullptr, 0, 0, _machineState.GetLocalPoolBottomIdx() };
// if not prepare arg stack. copy from args
if (imi->args)
{
IL2CPP_ASSERT(imi->argCount == metadata::GetActualArgumentNum(method));
CopyStackObject(stackBasePtr, argBase, imi->argStackObjectSize);
}
PUSH_STACK_FRAME(method, (uintptr_t)newFrame);
return newFrame;
}
InterpFrame* InterpFrameGroup::LeaveFrame()
{
IL2CPP_ASSERT(_machineState.GetFrameTopIdx() > _frameBaseIdx);
POP_STACK_FRAME();
InterpFrame* frame = _machineState.GetTopFrame();
#if HYBRIDCLR_ENABLE_PROFILER
il2cpp_codegen_profiler_method_exit(frame->method);
#endif
if (frame->exFlowBase)
{
_machineState.SetExceptionFlowTop(frame->exFlowBase);
}
_machineState.PopFrame();
_machineState.SetStackTop(frame->oldStackTop);
_machineState.SetLocalPoolBottomIdx(frame->oldLocalPoolBottomIdx);
return _machineState.GetFrameTopIdx() > _frameBaseIdx ? _machineState.GetTopFrame() : nullptr;
}
static bool FrameNeedsSkipped(const Il2CppStackFrameInfo& frame)
{
const MethodInfo* method = frame.method;
const Il2CppClass* klass = method->klass;
return (strcmp(klass->namespaze, "System.Diagnostics") == 0 &&
(strcmp(klass->name, "StackFrame") == 0 || strcmp(klass->name, "StackTrace") == 0))
|| (strcmp(klass->namespaze, "UnityEngine") == 0
&& (strcmp(klass->name, "StackTraceUtility") == 0
|| strcmp(klass->name, "Debug") == 0
|| strcmp(klass->name, "Logger") == 0
|| strcmp(klass->name, "DebugLogHandler") == 0));
}
static void SetupStackFrameInfo(const InterpFrame* frame, Il2CppStackFrameInfo& stackFrame)
{
const MethodInfo* method = frame->method;
const InterpMethodInfo* imi = (const InterpMethodInfo*)method->interpData;
const byte* actualIp = (const byte*)frame->ip;
stackFrame.method = method;
stackFrame.raw_ip = (uintptr_t)frame;
if (!hybridclr::metadata::IsInterpreterMethod(method))
{
return;
}
hybridclr::metadata::InterpreterImage* interpImage = hybridclr::metadata::MetadataModule::GetImage(method);
if (!interpImage)
{
return;
}
hybridclr::metadata::PDBImage* pdbImage = interpImage->GetPDBImage();
if (!pdbImage)
{
return;
}
pdbImage->SetupStackFrameInfo(method, actualIp, stackFrame);
}
void MachineState::CollectFrames(il2cpp::vm::StackFrames* stackFrames)
{
if (_frameTopIdx <= 0)
{
return;
}
size_t insertIndex = 0;
for (; insertIndex < stackFrames->size(); insertIndex++)
{
if (FrameNeedsSkipped((*stackFrames)[insertIndex]))
{
break;
}
}
stackFrames->insert(stackFrames->begin() + insertIndex, _frameTopIdx, Il2CppStackFrameInfo());
for (int32_t i = 0; i < _frameTopIdx; i++)
{
SetupStackFrameInfo(_frameBase + i, (*stackFrames)[insertIndex + i]);
}
}
void MachineState::SetupFramesDebugInfo(il2cpp::vm::StackFrames* stackFrames)
{
for (Il2CppStackFrameInfo& frame : *stackFrames)
{
if (frame.method && hybridclr::metadata::IsInterpreterImplement(frame.method))
{
hybridclr::metadata::InterpreterImage* interpImage = hybridclr::metadata::MetadataModule::GetImage(frame.method);
if (interpImage)
{
hybridclr::metadata::PDBImage* pdbImage = interpImage->GetPDBImage();
if (pdbImage)
{
pdbImage->SetupStackFrameInfo(frame.method, (const byte*)(((InterpFrame*)frame.raw_ip)->ip), frame);
}
}
}
}
}
}
}
================================================
FILE: hybridclr/interpreter/Engine.h
================================================
#pragma once
#include <stack>
#include "../CommonDef.h"
#include "gc/GarbageCollector.h"
#include "vm/Exception.h"
#include "vm/StackTrace.h"
#include "../metadata/MetadataUtil.h"
#include "../RuntimeConfig.h"
#include "InterpreterDefs.h"
#include "MemoryUtil.h"
#include "MethodBridge.h"
#include <algorithm>
namespace hybridclr
{
namespace interpreter
{
class MachineState
{
public:
MachineState()
{
_stackSize = -1;
_stackBase = nullptr;
_stackTopIdx = 0;
_localPoolBottomIdx = -1;
_frameBase = nullptr;
_frameCount = -1;
_frameTopIdx = 0;
_exceptionFlowBase = nullptr;
_exceptionFlowCount = -1;
_exceptionFlowTopIdx = 0;
}
~MachineState()
{
if (_stackBase)
{
//il2cpp::gc::GarbageCollector::FreeFixed(_stackBase);
il2cpp::gc::GarbageCollector::UnregisterDynamicRoot(this);
HYBRIDCLR_FREE(_stackBase);
}
if (_frameBase)
{
HYBRIDCLR_FREE(_frameBase);
}
if (_exceptionFlowBase)
{
HYBRIDCLR_FREE(_exceptionFlowBase);
}
}
static std::pair<char*, size_t> GetGCRootData(void* root)
{
MachineState* machineState = (MachineState*)root;
if (machineState->_stackBase && machineState->_stackTopIdx > 0)
{
return std::make_pair((char*)machineState->_stackBase, machineState->_stackTopIdx * sizeof(StackObject));
}
else
{
return std::make_pair(nullptr, 0);
}
}
StackObject* AllocArgments(int32_t argCount)
{
return AllocStackSlot(argCount);
}
StackObject* GetStackBasePtr() const
{
return _stackBase;
}
int32_t GetStackTop() const
{
return _stackTopIdx;
}
StackObject* AllocStackSlot(int32_t slotNum)
{
if (_stackTopIdx + slotNum > _localPoolBottomIdx)
{
if (!_stackBase)
{
InitEvalStack();
}
if (_stackTopIdx + slotNum > _localPoolBottomIdx)
{
il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetStackOverflowException("AllocStackSlot"));
}
}
StackObject* dataPtr = _stackBase + _stackTopIdx;
_stackTopIdx += slotNum;
#if DEBUG
std::memset(dataPtr, 0xEA, slotNum * sizeof(StackObject));
#endif
return dataPtr;
}
void* AllocLocalloc(size_t size)
{
IL2CPP_ASSERT(size % 8 == 0);
int32_t slotNum = (int32_t)(size / 8);
IL2CPP_ASSERT(slotNum > 0);
if (_stackTopIdx + slotNum > _localPoolBottomIdx)
{
if (!_stackBase)
{
InitEvalStack();
}
if (_stackTopIdx + slotNum > _localPoolBottomIdx)
{
il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetStackOverflowException("AllocLocalloc"));
}
}
_localPoolBottomIdx -= slotNum;
return _stackBase + _localPoolBottomIdx;
}
void SetStackTop(int32_t oldTop)
{
_stackTopIdx = oldTop;
}
uint32_t GetFrameTopIdx() const
{
return _frameTopIdx;
}
int32_t GetLocalPoolBottomIdx() const
{
return _localPoolBottomIdx;
}
void SetLocalPoolBottomIdx(int32_t idx)
{
_localPoolBottomIdx = idx;
}
InterpFrame* PushFrame()
{
if (_frameTopIdx >= _frameCount)
{
if (!_frameBase)
{
InitFrames();
}
else
{
il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetStackOverflowException("AllocFrame"));
}
}
return _frameBase + _frameTopIdx++;
}
void PopFrame()
{
IL2CPP_ASSERT(_frameTopIdx > 0);
--_frameTopIdx;
}
void PopFrameN(int32_t count)
{
IL2CPP_ASSERT(count > 0 && _frameTopIdx >= count);
_frameTopIdx -= count;
}
InterpFrame* GetTopFrame() const
{
if (_frameTopIdx > 0)
{
return _frameBase + _frameTopIdx - 1;
}
else
{
return nullptr;
}
}
ExceptionFlowInfo* AllocExceptionFlow(int32_t count)
{
if (_exceptionFlowTopIdx + count >= _exceptionFlowCount)
{
if (!_exceptionFlowBase)
{
InitExceptionFlows();
}
if (_exceptionFlowTopIdx + count >= _exceptionFlowCount)
{
il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetExecutionEngineException("AllocExceptionFlowZero"));
}
}
ExceptionFlowInfo* efi = _exceptionFlowBase + _exceptionFlowTopIdx;
_exceptionFlowTopIdx += count;
return efi;
}
uint32_t GetExceptionFlowTopIdx() const
{
return _exceptionFlowTopIdx;
}
void SetExceptionFlowTopIdx(uint32_t exTopIdx)
{
_exceptionFlowTopIdx = exTopIdx;
}
void SetExceptionFlowTop(ExceptionFlowInfo* top)
{
_exceptionFlowTopIdx = (int32_t)(top - _exceptionFlowBase);
IL2CPP_ASSERT(_exceptionFlowTopIdx >= 0 && _exceptionFlowTopIdx <= _exceptionFlowCount);
}
void PushExecutingImage(const Il2CppImage* image)
{
_executingImageStack.push(image);
}
void PopExecutingImage()
{
_executingImageStack.pop();
}
const Il2CppImage* GetTopExecutingImage() const
{
if (_executingImageStack.empty())
{
return nullptr;
}
else
{
return _executingImageStack.top();
}
}
void CollectFrames(il2cpp::vm::StackFrames* stackFrames);
void SetupFramesDebugInfo(il2cpp::vm::StackFrames* stackFrames);
private:
void InitEvalStack()
{
_stackSize = (int32_t)RuntimeConfig::GetInterpreterThreadObjectStackSize();
_stackBase = (StackObject*)HYBRIDCLR_MALLOC_ZERO(RuntimeConfig::GetInterpreterThreadObjectStackSize() * sizeof(StackObject));
_stackTopIdx = 0;
_localPoolBottomIdx = _stackSize;
il2cpp::gc::GarbageCollector::RegisterDynamicRoot(this, GetGCRootData);
}
void InitFrames()
{
_frameBase = (InterpFrame*)HYBRIDCLR_CALLOC(RuntimeConfig::GetInterpreterThreadFrameStackSize(), sizeof(InterpFrame));
_frameCount = (int32_t)RuntimeConfig::GetInterpreterThreadFrameStackSize();
_frameTopIdx = 0;
}
void InitExceptionFlows()
{
_exceptionFlowBase = (ExceptionFlowInfo*)HYBRIDCLR_CALLOC(RuntimeConfig::GetInterpreterThreadExceptionFlowSize(), sizeof(ExceptionFlowInfo));
_exceptionFlowCount = (int32_t)RuntimeConfig::GetInterpreterThreadExceptionFlowSize();
_exceptionFlowTopIdx = 0;
}
StackObject* _stackBase;
int32_t _stackSize;
int32_t _stackTopIdx;
int32_t _localPoolBottomIdx;
InterpFrame* _frameBase;
int32_t _frameTopIdx;
int32_t _frameCount;
ExceptionFlowInfo* _exceptionFlowBase;
int32_t _exceptionFlowTopIdx;
int32_t _exceptionFlowCount;
std::stack<const Il2CppImage*> _executingImageStack;
};
class ExecutingInterpImageScope
{
public:
ExecutingInterpImageScope(MachineState& state, const Il2CppImage* image) : _state(state)
{
_state.PushExecutingImage(image);
}
~ExecutingInterpImageScope()
{
_state.PopExecutingImage();
}
private:
MachineState& _state;
};
class InterpFrameGroup
{
public:
InterpFrameGroup(MachineState& ms) : _machineState(ms), _stackBaseIdx(ms.GetStackTop()), _frameBaseIdx(ms.GetFrameTopIdx())
{
}
void CleanUpFrames()
{
IL2CPP_ASSERT(_machineState.GetFrameTopIdx() >= _frameBaseIdx);
uint32_t n = _machineState.GetFrameTopIdx() - _frameBaseIdx;
if (n > 0)
{
for (uint32_t i = 0; i < n; i++)
{
LeaveFrame();
}
}
}
InterpFrame* EnterFrameFromInterpreter(const MethodInfo* method, StackObject* argBase);
InterpFrame* EnterFrameFromNative(const MethodInfo* method, StackObject* argBase);
InterpFrame* LeaveFrame();
void* AllocLoc(size_t originSize, bool fillZero)
{
if (originSize == 0)
{
return nullptr;
}
size_t size = (originSize + 7) & ~(size_t)7;
void* data = _machineState.AllocLocalloc(size);
if (fillZero)
{
std::memset(data, 0, size);
}
return data;
}
size_t GetFrameCount() const { return _machineState.GetFrameTopIdx() - _frameBaseIdx; }
private:
MachineState& _machineState;
int32_t _stackBaseIdx;
uint32_t _frameBaseIdx;
};
}
}
================================================
FILE: hybridclr/interpreter/InstrinctDef.h
================================================
#pragma once
#include "../CommonDef.h"
namespace hybridclr
{
namespace interpreter
{
struct HtVector2f
{
float x;
float y;
};
static_assert(sizeof(HtVector2f) == 8, "Vector2f");
struct HtVector3f
{
float x;
float y;
float z;
};
static_assert(sizeof(HtVector3f) == 12, "Vector3f");
struct HtVector4f
{
float x;
float y;
float z;
float w;
};
static_assert(sizeof(HtVector4f) == 16, "Vector4f");
struct HtVector2d
{
double x;
double y;
};
static_assert(sizeof(HtVector2d) == 16, "Vector2d");
struct HtVector3d
{
double x;
double y;
double z;
};
static_assert(sizeof(HtVector3d) == 24, "Vector3d");
struct HtVector4d
{
double x;
double y;
double z;
double w;
};
static_assert(sizeof(HtVector4d) == 32, "Vector4d");
struct HtVector2i
{
int32_t x;
int32_t y;
};
static_assert(sizeof(HtVector2i) == 8, "IntVector2i");
struct HtVector3i
{
int32_t x;
int32_t y;
int32_t z;
};
static_assert(sizeof(HtVector3i) == 12, "IntVector3i");
struct HtVector4i
{
int32_t x;
int32_t y;
int32_t z;
int32_t w;
};
static_assert(sizeof(HtVector4i) == 16, "IntVector4i");
#pragma endregion
}
}
================================================
FILE: hybridclr/interpreter/Instruction.cpp
================================================
#include "Instruction.h"
namespace hybridclr
{
namespace interpreter
{
uint16_t g_instructionSizes[] =
{
0,
//!!!{{INST_SIZE
8,
8,
8,
8,
8,
8,
8,
16,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
16,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
8,
16,
16,
8,
8,
16,
8,
16,
16,
16,
8,
16,
16,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
16,
16,
24,
16,
16,
24,
8,
16,
16,
16,
24,
8,
16,
24,
24,
24,
16,
16,
24,
16,
24,
24,
16,
8,
16,
16,
16,
8,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
16,
16,
16,
24,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
16,
16,
16,
8,
16,
16,
16,
8,
16,
16,
16,
8,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
8,
8,
8,
16,
8,
16,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
16,
8,
16,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
16,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
16,
16,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
16,
16,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
16,
16,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
8,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
8,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
8,
8,
16,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
16,
16,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
16,
16,
16,
16,
16,
16,
16,
16,
16,
8,
8,
8,
8,
8,
8,
16,
8,
16,
16,
8,
8,
16,
8,
16,
16,
8,
8,
8,
16,
8,
8,
8,
8,
8,
//!!!}}INST_SIZE
};
}
}
================================================
FILE: hybridclr/interpreter/Instruction.h
================================================
#pragma once
#include "../CommonDef.h"
namespace hybridclr
{
namespace interpreter
{
enum class PrefixFlags
{
None = 0,
Constrained = 0x1,
No = 0x2,
ReadOnly = 0x4,
Tail = 0x8,
Unaligned = 0x10,
Volatile = 0x20,
};
extern uint16_t g_instructionSizes[];
enum class HiOpcodeEnum : uint16_t
{
None,
//!!!{{OPCODE
InitLocals_n_2,
InitLocals_n_4,
InitLocals_size_8,
InitLocals_size_16,
InitLocals_size_24,
InitLocals_size_32,
InitInlineLocals_n_2,
InitInlineLocals_n_4,
InitInlineLocals_size_8,
InitInlineLocals_size_16,
InitInlineLocals_size_24,
InitInlineLocals_size_32,
LdlocVarVar,
LdlocExpandVarVar_i1,
LdlocExpandVarVar_u1,
LdlocExpandVarVar_i2,
LdlocExpandVarVar_u2,
LdlocVarVarSize,
LdlocVarAddress,
LdcVarConst_1,
LdcVarConst_2,
LdcVarConst_4,
LdcVarConst_8,
LdnullVar,
LdindVarVar_i1,
LdindVarVar_u1,
LdindVarVar_i2,
LdindVarVar_u2,
LdindVarVar_i4,
LdindVarVar_u4,
LdindVarVar_i8,
LdindVarVar_f4,
LdindVarVar_f8,
StindVarVar_i1,
StindVarVar_i2,
StindVarVar_i4,
StindVarVar_i8,
StindVarVar_f4,
StindVarVar_f8,
StindVarVar_ref,
LocalAllocVarVar_n_2,
LocalAllocVarVar_n_4,
InitblkVarVarVar,
CpblkVarVar,
MemoryBarrier,
ConvertVarVar_i4_i1,
ConvertVarVar_i4_u1,
ConvertVarVar_i4_i2,
ConvertVarVar_i4_u2,
ConvertVarVar_i4_i4,
ConvertVarVar_i4_u4,
ConvertVarVar_i4_i8,
ConvertVarVar_i4_u8,
ConvertVarVar_i4_f4,
ConvertVarVar_i4_f8,
ConvertVarVar_u4_i1,
ConvertVarVar_u4_u1,
ConvertVarVar_u4_i2,
ConvertVarVar_u4_u2,
ConvertVarVar_u4_i4,
ConvertVarVar_u4_u4,
ConvertVarVar_u4_i8,
ConvertVarVar_u4_u8,
ConvertVarVar_u4_f4,
ConvertVarVar_u4_f8,
ConvertVarVar_i8_i1,
ConvertVarVar_i8_u1,
ConvertVarVar_i8_i2,
ConvertVarVar_i8_u2,
ConvertVarVar_i8_i4,
ConvertVarVar_i8_u4,
ConvertVarVar_i8_i8,
ConvertVarVar_i8_u8,
ConvertVarVar_i8_f4,
ConvertVarVar_i8_f8,
ConvertVarVar_u8_i1,
ConvertVarVar_u8_u1,
ConvertVarVar_u8_i2,
ConvertVarVar_u8_u2,
ConvertVarVar_u8_i4,
ConvertVarVar_u8_u4,
ConvertVarVar_u8_i8,
ConvertVarVar_u8_u8,
ConvertVarVar_u8_f4,
ConvertVarVar_u8_f8,
ConvertVarVar_f4_i1,
ConvertVarVar_f4_u1,
ConvertVarVar_f4_i2,
ConvertVarVar_f4_u2,
ConvertVarVar_f4_i4,
ConvertVarVar_f4_u4,
ConvertVarVar_f4_i8,
ConvertVarVar_f4_u8,
ConvertVarVar_f4_f4,
ConvertVarVar_f4_f8,
ConvertVarVar_f8_i1,
ConvertVarVar_f8_u1,
ConvertVarVar_f8_i2,
ConvertVarVar_f8_u2,
ConvertVarVar_f8_i4,
ConvertVarVar_f8_u4,
ConvertVarVar_f8_i8,
ConvertVarVar_f8_u8,
ConvertVarVar_f8_f4,
ConvertVarVar_f8_f8,
ConvertOverflowVarVar_i4_i1,
ConvertOverflowVarVar_i4_u1,
ConvertOverflowVarVar_i4_i2,
ConvertOverflowVarVar_i4_u2,
ConvertOverflowVarVar_i4_i4,
ConvertOverflowVarVar_i4_u4,
ConvertOverflowVarVar_i4_i8,
ConvertOverflowVarVar_i4_u8,
ConvertOverflowVarVar_u4_i1,
ConvertOverflowVarVar_u4_u1,
ConvertOverflowVarVar_u4_i2,
ConvertOverflowVarVar_u4_u2,
ConvertOverflowVarVar_u4_i4,
ConvertOverflowVarVar_u4_u4,
ConvertOverflowVarVar_u4_i8,
ConvertOverflowVarVar_u4_u8,
ConvertOverflowVarVar_i8_i1,
ConvertOverflowVarVar_i8_u1,
ConvertOverflowVarVar_i8_i2,
ConvertOverflowVarVar_i8_u2,
ConvertOverflowVarVar_i8_i4,
ConvertOverflowVarVar_i8_u4,
ConvertOverflowVarVar_i8_i8,
ConvertOverflowVarVar_i8_u8,
ConvertOverflowVarVar_u8_i1,
ConvertOverflowVarVar_u8_u1,
ConvertOverflowVarVar_u8_i2,
ConvertOverflowVarVar_u8_u2,
ConvertOverflowVarVar_u8_i4,
ConvertOverflowVarVar_u8_u4,
ConvertOverflowVarVar_u8_i8,
ConvertOverflowVarVar_u8_u8,
ConvertOverflowVarVar_f4_i1,
ConvertOverflowVarVar_f4_u1,
ConvertOverflowVarVar_f4_i2,
ConvertOverflowVarVar_f4_u2,
ConvertOverflowVarVar_f4_i4,
ConvertOverflowVarVar_f4_u4,
ConvertOverflowVarVar_f4_i8,
ConvertOverflowVarVar_f4_u8,
ConvertOverflowVarVar_f8_i1,
ConvertOverflowVarVar_f8_u1,
ConvertOverflowVarVar_f8_i2,
ConvertOverflowVarVar_f8_u2,
ConvertOverflowVarVar_f8_i4,
ConvertOverflowVarVar_f8_u4,
ConvertOverflowVarVar_f8_i8,
ConvertOverflowVarVar_f8_u8,
BinOpVarVarVar_Add_i4,
BinOpVarVarVar_Sub_i4,
BinOpVarVarVar_Mul_i4,
BinOpVarVarVar_MulUn_i4,
BinOpVarVarVar_Div_i4,
BinOpVarVarVar_DivUn_i4,
BinOpVarVarVar_Rem_i4,
BinOpVarVarVar_RemUn_i4,
BinOpVarVarVar_And_i4,
BinOpVarVarVar_Or_i4,
BinOpVarVarVar_Xor_i4,
BinOpVarVarVar_Add_i8,
BinOpVarVarVar_Sub_i8,
BinOpVarVarVar_Mul_i8,
BinOpVarVarVar_MulUn_i8,
BinOpVarVarVar_Div_i8,
BinOpVarVarVar_DivUn_i8,
BinOpVarVarVar_Rem_i8,
BinOpVarVarVar_RemUn_i8,
BinOpVarVarVar_And_i8,
BinOpVarVarVar_Or_i8,
BinOpVarVarVar_Xor_i8,
BinOpVarVarVar_Add_f4,
BinOpVarVarVar_Sub_f4,
BinOpVarVarVar_Mul_f4,
BinOpVarVarVar_Div_f4,
BinOpVarVarVar_Rem_f4,
BinOpVarVarVar_Add_f8,
BinOpVarVarVar_Sub_f8,
BinOpVarVarVar_Mul_f8,
BinOpVarVarVar_Div_f8,
BinOpVarVarVar_Rem_f8,
BinOpOverflowVarVarVar_Add_i4,
BinOpOverflowVarVarVar_Sub_i4,
BinOpOverflowVarVarVar_Mul_i4,
BinOpOverflowVarVarVar_Add_i8,
BinOpOverflowVarVarVar_Sub_i8,
BinOpOverflowVarVarVar_Mul_i8,
BinOpOverflowVarVarVar_Add_u4,
BinOpOverflowVarVarVar_Sub_u4,
BinOpOverflowVarVarVar_Mul_u4,
BinOpOverflowVarVarVar_Add_u8,
BinOpOverflowVarVarVar_Sub_u8,
BinOpOverflowVarVarVar_Mul_u8,
BitShiftBinOpVarVarVar_Shl_i4_i4,
BitShiftBinOpVarVarVar_Shr_i4_i4,
BitShiftBinOpVarVarVar_ShrUn_i4_i4,
BitShiftBinOpVarVarVar_Shl_i4_i8,
BitShiftBinOpVarVarVar_Shr_i4_i8,
BitShiftBinOpVarVarVar_ShrUn_i4_i8,
BitShiftBinOpVarVarVar_Shl_i8_i4,
BitShiftBinOpVarVarVar_Shr_i8_i4,
BitShiftBinOpVarVarVar_ShrUn_i8_i4,
BitShiftBinOpVarVarVar_Shl_i8_i8,
BitShiftBinOpVarVarVar_Shr_i8_i8,
BitShiftBinOpVarVarVar_ShrUn_i8_i8,
UnaryOpVarVar_Neg_i4,
UnaryOpVarVar_Not_i4,
UnaryOpVarVar_Neg_i8,
UnaryOpVarVar_Not_i8,
UnaryOpVarVar_Neg_f4,
UnaryOpVarVar_Neg_f8,
CheckFiniteVar_f4,
CheckFiniteVar_f8,
CompOpVarVarVar_Ceq_i4,
CompOpVarVarVar_Ceq_i8,
CompOpVarVarVar_Ceq_f4,
CompOpVarVarVar_Ceq_f8,
CompOpVarVarVar_Cgt_i4,
CompOpVarVarVar_Cgt_i8,
CompOpVarVarVar_Cgt_f4,
CompOpVarVarVar_Cgt_f8,
CompOpVarVarVar_CgtUn_i4,
CompOpVarVarVar_CgtUn_i8,
CompOpVarVarVar_CgtUn_f4,
CompOpVarVarVar_CgtUn_f8,
CompOpVarVarVar_Clt_i4,
CompOpVarVarVar_Clt_i8,
CompOpVarVarVar_Clt_f4,
CompOpVarVarVar_Clt_f8,
CompOpVarVarVar_CltUn_i4,
CompOpVarVarVar_CltUn_i8,
CompOpVarVarVar_CltUn_f4,
CompOpVarVarVar_CltUn_f8,
BranchUncondition_4,
BranchTrueVar_i4,
BranchTrueVar_i8,
BranchFalseVar_i4,
BranchFalseVar_i8,
BranchVarVar_Ceq_i4,
BranchVarVar_Ceq_i8,
BranchVarVar_Ceq_f4,
BranchVarVar_Ceq_f8,
BranchVarVar_CneUn_i4,
BranchVarVar_CneUn_i8,
BranchVarVar_CneUn_f4,
BranchVarVar_CneUn_f8,
BranchVarVar_Cgt_i4,
BranchVarVar_Cgt_i8,
BranchVarVar_Cgt_f4,
BranchVarVar_Cgt_f8,
BranchVarVar_CgtUn_i4,
BranchVarVar_CgtUn_i8,
BranchVarVar_CgtUn_f4,
BranchVarVar_CgtUn_f8,
BranchVarVar_Cge_i4,
BranchVarVar_Cge_i8,
BranchVarVar_Cge_f4,
BranchVarVar_Cge_f8,
BranchVarVar_CgeUn_i4,
BranchVarVar_CgeUn_i8,
BranchVarVar_CgeUn_f4,
BranchVarVar_CgeUn_f8,
BranchVarVar_Clt_i4,
BranchVarVar_Clt_i8,
BranchVarVar_Clt_f4,
BranchVarVar_Clt_f8,
BranchVarVar_CltUn_i4,
BranchVarVar_CltUn_i8,
BranchVarVar_CltUn_f4,
BranchVarVar_CltUn_f8,
BranchVarVar_Cle_i4,
BranchVarVar_Cle_i8,
BranchVarVar_Cle_f4,
BranchVarVar_Cle_f8,
BranchVarVar_CleUn_i4,
BranchVarVar_CleUn_i8,
BranchVarVar_CleUn_f4,
BranchVarVar_CleUn_f8,
BranchJump,
BranchSwitch,
NewClassVar,
NewClassVar_Ctor_0,
NewClassVar_NotCtor,
NewValueTypeVar,
NewValueTypeVar_Ctor_0,
NewClassInterpVar,
NewClassInterpVar_Ctor_0,
NewValueTypeInterpVar,
AdjustValueTypeRefVar,
BoxRefVarVar,
LdvirftnVarVar,
RetVar_ret_1,
RetVar_ret_2,
RetVar_ret_4,
RetVar_ret_8,
RetVar_ret_12,
RetVar_ret_16,
RetVar_ret_20,
RetVar_ret_24,
RetVar_ret_28,
RetVar_ret_32,
RetVar_ret_n,
RetVar_void,
CallNativeInstance_void,
CallNativeInstance_ret,
CallNativeInstance_ret_expand,
CallNativeStatic_void,
CallNativeStatic_ret,
CallNativeStatic_ret_expand,
CallInterp_void,
CallInterp_ret,
CallVirtual_void,
CallVirtual_ret,
CallVirtual_ret_expand,
CallInterpVirtual_void,
CallInterpVirtual_ret,
CallInd_void,
CallInd_ret,
CallInd_ret_expand,
CallPInvoke_void,
CallPInvoke_ret,
CallPInvoke_ret_expand,
CallDelegateInvoke_void,
CallDelegateInvoke_ret,
CallDelegateInvoke_ret_expand,
CallDelegateBeginInvoke,
CallDelegateEndInvoke_void,
CallDelegateEndInvoke_ret,
NewDelegate,
CtorDelegate,
CallCommonNativeInstance_v_0,
CallCommonNativeInstance_i1_0,
CallCommonNativeInstance_u1_0,
CallCommonNativeInstance_i2_0,
CallCommonNativeInstance_u2_0,
CallCommonNativeInstance_i4_0,
CallCommonNativeInstance_i8_0,
CallCommonNativeInstance_f4_0,
CallCommonNativeInstance_f8_0,
CallCommonNativeInstance_v_i4_1,
CallCommonNativeInstance_v_i4_2,
CallCommonNativeInstance_v_i4_3,
CallCommonNativeInstance_v_i4_4,
CallCommonNativeInstance_v_i8_1,
CallCommonNativeInstance_v_i8_2,
CallCommonNativeInstance_v_i8_3,
CallCommonNativeInstance_v_i8_4,
CallCommonNativeInstance_v_f4_1,
CallCommonNativeInstance_v_f4_2,
CallCommonNativeInstance_v_f4_3,
CallCommonNativeInstance_v_f4_4,
CallCommonNativeInstance_v_f8_1,
CallCommonNativeInstance_v_f8_2,
CallCommonNativeInstance_v_f8_3,
CallCommonNativeInstance_v_f8_4,
CallCommonNativeInstance_u1_i4_1,
CallCommonNativeInstance_u1_i4_2,
CallCommonNativeInstance_u1_i4_3,
CallCommonNativeInstance_u1_i4_4,
CallCommonNativeInstance_u1_i8_1,
CallCommonNativeInstance_u1_i8_2,
CallCommonNativeInstance_u1_i8_3,
CallCommonNativeInstance_u1_i8_4,
CallCommonNativeInstance_u1_f4_1,
CallCommonNativeInstance_u1_f4_2,
CallCommonNativeInstance_u1_f4_3,
CallCommonNativeInstance_u1_f4_4,
CallCommonNativeInstance_u1_f8_1,
CallCommonNativeInstance_u1_f8_2,
CallCommonNativeInstance_u1_f8_3,
CallCommonNativeInstance_u1_f8_4,
CallCommonNativeInstance_i4_i4_1,
CallCommonNativeInstance_i4_i4_2,
CallCommonNativeInstance_i4_i4_3,
CallCommonNativeInstance_i4_i4_4,
CallCommonNativeInstance_i4_i8_1,
CallCommonNativeInstance_i4_i8_2,
CallCommonNativeInstance_i4_i8_3,
CallCommonNativeInstance_i4_i8_4,
CallCommonNativeInstance_i4_f4_1,
CallCommonNativeInstance_i4_f4_2,
CallCommonNativeInstance_i4_f4_3,
CallCommonNativeInstance_i4_f4_4,
CallCommonNativeInstance_i4_f8_1,
CallCommonNativeInstance_i4_f8_2,
CallCommonNativeInstance_i4_f8_3,
CallCommonNativeInstance_i4_f8_4,
CallCommonNativeInstance_i8_i4_1,
CallCommonNativeInstance_i8_i4_2,
CallCommonNativeInstance_i8_i4_3,
CallCommonNativeInstance_i8_i4_4,
CallCommonNativeInstance_i8_i8_1,
CallCommonNativeInstance_i8_i8_2,
CallCommonNativeInstance_i8_i8_3,
CallCommonNativeInstance_i8_i8_4,
CallCommonNativeInstance_i8_f4_1,
CallCommonNativeInstance_i8_f4_2,
CallCommonNativeInstance_i8_f4_3,
CallCommonNativeInstance_i8_f4_4,
CallCommonNativeInstance_i8_f8_1,
CallCommonNativeInstance_i8_f8_2,
CallCommonNativeInstance_i8_f8_3,
CallCommonNativeInstance_i8_f8_4,
CallCommonNativeInstance_f4_i4_1,
CallCommonNativeInstance_f4_i4_2,
CallCommonNativeInstance_f4_i4_3,
CallCommonNativeInstance_f4_i4_4,
CallCommonNativeInstance_f4_i8_1,
CallCommonNativeInstance_f4_i8_2,
CallCommonNativeInstance_f4_i8_3,
CallCommonNativeInstance_f4_i8_4,
CallCommonNativeInstance_f4_f4_1,
CallCommonNativeInstance_f4_f4_2,
CallCommonNativeInstance_f4_f4_3,
CallCommonNativeInstance_f4_f4_4,
CallCommonNativeInstance_f4_f8_1,
CallCommonNativeInstance_f4_f8_2,
CallCommonNativeInstance_f4_f8_3,
CallCommonNativeInstance_f4_f8_4,
CallCommonNativeInstance_f8_i4_1,
CallCommonNativeInstance_f8_i4_2,
CallCommonNativeInstance_f8_i4_3,
CallCommonNativeInstance_f8_i4_4,
CallCommonNativeInstance_f8_i8_1,
CallCommonNativeInstance_f8_i8_2,
CallCommonNativeInstance_f8_i8_3,
CallCommonNativeInstance_f8_i8_4,
CallCommonNativeInstance_f8_f4_1,
CallCommonNativeInstance_f8_f4_2,
CallCommonNativeInstance_f8_f4_3,
CallCommonNativeInstance_f8_f4_4,
CallCommonNativeInstance_f8_f8_1,
CallCommonNativeInstance_f8_f8_2,
CallCommonNativeInstance_f8_f8_3,
CallCommonNativeInstance_f8_f8_4,
CallCommonNativeStatic_v_0,
CallCommonNativeStatic_i1_0,
CallCommonNativeStatic_u1_0,
CallCommonNativeStatic_i2_0,
CallCommonNativeStatic_u2_0,
CallCommonNativeStatic_i4_0,
CallCommonNativeStatic_i8_0,
CallCommonNativeStatic_f4_0,
CallCommonNativeStatic_f8_0,
CallCommonNativeStatic_v_i4_1,
CallCommonNativeStatic_v_i4_2,
CallCommonNativeStatic_v_i4_3,
CallCommonNativeStatic_v_i4_4,
CallCommonNativeStatic_v_i8_1,
CallCommonNativeStatic_v_i8_2,
CallCommonNativeStatic_v_i8_3,
CallCommonNativeStatic_v_i8_4,
CallCommonNativeStatic_v_f4_1,
CallCommonNativeStatic_v_f4_2,
CallCommonNativeStatic_v_f4_3,
CallCommonNativeStatic_v_f4_4,
CallCommonNativeStatic_v_f8_1,
CallCommonNativeStatic_v_f8_2,
CallCommonNativeStatic_v_f8_3,
CallCommonNativeStatic_v_f8_4,
CallCommonNativeStatic_u1_i4_1,
CallCommonNativeStatic_u1_i4_2,
CallCommonNativeStatic_u1_i4_3,
CallCommonNativeStatic_u1_i4_4,
CallCommonNativeStatic_u1_i8_1,
CallCommonNativeStatic_u1_i8_2,
CallCommonNativeStatic_u1_i8_3,
CallCommonNativeStatic_u1_i8_4,
CallCommonNativeStatic_u1_f4_1,
CallCommonNativeStatic_u1_f4_2,
CallCommonNativeStatic_u1_f4_3,
CallCommonNativeStatic_u1_f4_4,
CallCommonNativeStatic_u1_f8_1,
CallCommonNativeStatic_u1_f8_2,
CallCommonNativeStatic_u1_f8_3,
CallCommonNativeStatic_u1_f8_4,
CallCommonNativeStatic_i4_i4_1,
CallCommonNativeStatic_i4_i4_2,
CallCommonNativeStatic_i4_i4_3,
CallCommonNativeStatic_i4_i4_4,
CallCommonNativeStatic_i4_i8_1,
CallCommonNativeStatic_i4_i8_2,
CallCommonNativeStatic_i4_i8_3,
CallCommonNativeStatic_i4_i8_4,
CallCommonNativeStatic_i4_f4_1,
CallCommonNativeStatic_i4_f4_2,
CallCommonNativeStatic_i4_f4_3,
CallCommonNativeStatic_i4_f4_4,
CallCommonNativeStatic_i4_f8_1,
CallCommonNativeStatic_i4_f8_2,
CallCommonNativeStatic_i4_f8_3,
CallCommonNativeStatic_i4_f8_4,
CallCommonNativeStatic_i8_i4_1,
CallCommonNativeStatic_i8_i4_2,
CallCommonNativeStatic_i8_i4_3,
CallCommonNativeStatic_i8_i4_4,
CallCommonNativeStatic_i8_i8_1,
CallCommonNativeStatic_i8_i8_2,
CallCommonNativeStatic_i8_i8_3,
CallCommonNativeStatic_i8_i8_4,
CallCommonNativeStatic_i8_f4_1,
CallCommonNativeStatic_i8_f4_2,
CallCommonNativeStatic_i8_f4_3,
CallCommonNativeStatic_i8_f4_4,
CallCommonNativeStatic_i8_f8_1,
CallCommonNativeStatic_i8_f8_2,
CallCommonNativeStatic_i8_f8_3,
CallCommonNativeStatic_i8_f8_4,
CallCommonNativeStatic_f4_i4_1,
CallCommonNativeStatic_f4_i4_2,
CallCommonNativeStatic_f4_i4_3,
CallCommonNativeStatic_f4_i4_4,
CallCommonNativeStatic_f4_i8_1,
CallCommonNativeStatic_f4_i8_2,
CallCommonNativeStatic_f4_i8_3,
CallCommonNativeStatic_f4_i8_4,
CallCommonNativeStatic_f4_f4_1,
CallCommonNativeStatic_f4_f4_2,
CallCommonNativeStatic_f4_f4_3,
CallCommonNativeStatic_f4_f4_4,
CallCommonNativeStatic_f4_f8_1,
CallCommonNativeStatic_f4_f8_2,
CallCommonNativeStatic_f4_f8_3,
CallCommonNativeStatic_f4_f8_4,
CallCommonNativeStatic_f8_i4_1,
CallCommonNativeStatic_f8_i4_2,
CallCommonNativeStatic_f8_i4_3,
CallCommonNativeStatic_f8_i4_4,
CallCommonNativeStatic_f8_i8_1,
CallCommonNativeStatic_f8_i8_2,
CallCommonNativeStatic_f8_i8_3,
CallCommonNativeStatic_f8_i8_4,
CallCommonNativeStatic_f8_f4_1,
CallCommonNativeStatic_f8_f4_2,
CallCommonNativeStatic_f8_f4_3,
CallCommonNativeStatic_f8_f4_4,
CallCommonNativeStatic_f8_f8_1,
CallCommonNativeStatic_f8_f8_2,
CallCommonNativeStatic_f8_f8_3,
CallCommonNativeStatic_f8_f8_4,
BoxVarVar,
UnBoxVarVar,
UnBoxAnyVarVar,
CastclassVar,
IsInstVar,
LdtokenVar,
MakeRefVarVar,
RefAnyTypeVarVar,
RefAnyValueVarVar,
CpobjVarVar_ref,
CpobjVarVar_1,
CpobjVarVar_2,
CpobjVarVar_4,
CpobjVarVar_8,
CpobjVarVar_12,
CpobjVarVar_16,
CpobjVarVar_20,
CpobjVarVar_24,
CpobjVarVar_28,
CpobjVarVar_32,
CpobjVarVar_n_2,
CpobjVarVar_n_4,
CpobjVarVar_WriteBarrier_n_2,
CpobjVarVar_WriteBarrier_n_4,
LdobjVarVar_ref,
LdobjVarVar_1,
LdobjVarVar_2,
LdobjVarVar_4,
LdobjVarVar_8,
LdobjVarVar_12,
LdobjVarVar_16,
LdobjVarVar_20,
LdobjVarVar_24,
LdobjVarVar_28,
LdobjVarVar_32,
LdobjVarVar_n_4,
StobjVarVar_ref,
StobjVarVar_1,
StobjVarVar_2,
StobjVarVar_4,
StobjVarVar_8,
StobjVarVar_12,
StobjVarVar_16,
StobjVarVar_20,
StobjVarVar_24,
StobjVarVar_28,
StobjVarVar_32,
StobjVarVar_n_4,
StobjVarVar_WriteBarrier_n_4,
InitobjVar_ref,
InitobjVar_1,
InitobjVar_2,
InitobjVar_4,
InitobjVar_8,
InitobjVar_12,
InitobjVar_16,
InitobjVar_20,
InitobjVar_24,
InitobjVar_28,
InitobjVar_32,
InitobjVar_n_2,
InitobjVar_n_4,
InitobjVar_WriteBarrier_n_2,
InitobjVar_WriteBarrier_n_4,
LdstrVar,
LdfldVarVar_i1,
LdfldVarVar_u1,
LdfldVarVar_i2,
LdfldVarVar_u2,
LdfldVarVar_i4,
LdfldVarVar_u4,
LdfldVarVar_i8,
LdfldVarVar_u8,
LdfldVarVar_size_8,
LdfldVarVar_size_12,
LdfldVarVar_size_16,
LdfldVarVar_size_20,
LdfldVarVar_size_24,
LdfldVarVar_size_28,
LdfldVarVar_size_32,
LdfldVarVar_n_2,
LdfldVarVar_n_4,
LdfldValueTypeVarVar_i1,
LdfldValueTypeVarVar_u1,
LdfldValueTypeVarVar_i2,
LdfldValueTypeVarVar_u2,
LdfldValueTypeVarVar_i4,
LdfldValueTypeVarVar_u4,
LdfldValueTypeVarVar_i8,
LdfldValueTypeVarVar_u8,
LdfldValueTypeVarVar_size_8,
LdfldValueTypeVarVar_size_12,
LdfldValueTypeVarVar_size_16,
LdfldValueTypeVarVar_size_20,
LdfldValueTypeVarVar_size_24,
LdfldValueTypeVarVar_size_28,
LdfldValueTypeVarVar_size_32,
LdfldValueTypeVarVar_n_2,
LdfldValueTypeVarVar_n_4,
LdfldaVarVar,
StfldVarVar_i1,
StfldVarVar_u1,
StfldVarVar_i2,
StfldVarVar_u2,
StfldVarVar_i4,
StfldVarVar_u4,
StfldVarVar_i8,
StfldVarVar_u8,
StfldVarVar_ref,
StfldVarVar_size_8,
StfldVarVar_size_12,
StfldVarVar_size_16,
StfldVarVar_size_20,
StfldVarVar_size_24,
StfldVarVar_size_28,
StfldVarVar_size_32,
StfldVarVar_n_2,
StfldVarVar_n_4,
StfldVarVar_WriteBarrier_n_2,
StfldVarVar_WriteBarrier_n_4,
LdsfldVarVar_i1,
LdsfldVarVar_u1,
LdsfldVarVar_i2,
LdsfldVarVar_u2,
LdsfldVarVar_i4,
LdsfldVarVar_u4,
LdsfldVarVar_i8,
LdsfldVarVar_u8,
LdsfldVarVar_size_8,
LdsfldVarVar_size_12,
LdsfldVarVar_size_16,
LdsfldVarVar_size_20,
LdsfldVarVar_size_24,
LdsfldVarVar_size_28,
LdsfldVarVar_size_32,
LdsfldVarVar_n_2,
LdsfldVarVar_n_4,
StsfldVarVar_i1,
StsfldVarVar_u1,
StsfldVarVar_i2,
StsfldVarVar_u2,
StsfldVarVar_i4,
StsfldVarVar_u4,
StsfldVarVar_i8,
StsfldVarVar_u8,
StsfldVarVar_ref,
StsfldVarVar_size_8,
StsfldVarVar_size_12,
StsfldVarVar_size_16,
StsfldVarVar_size_20,
StsfldVarVar_size_24,
StsfldVarVar_size_28,
StsfldVarVar_size_32,
StsfldVarVar_n_2,
StsfldVarVar_n_4,
StsfldVarVar_WriteBarrier_n_2,
StsfldVarVar_WriteBarrier_n_4,
LdsfldaVarVar,
LdsfldaFromFieldDataVarVar,
LdthreadlocalaVarVar,
LdthreadlocalVarVar_i1,
LdthreadlocalVarVar_u1,
LdthreadlocalVarVar_i2,
LdthreadlocalVarVar_u2,
LdthreadlocalVarVar_i4,
LdthreadlocalVarVar_u4,
LdthreadlocalVarVar_i8,
LdthreadlocalVarVar_u8,
LdthreadlocalVarVar_size_8,
LdthreadlocalVarVar_size_12,
LdthreadlocalVarVar_size_16,
LdthreadlocalVarVar_size_20,
LdthreadlocalVarVar_size_24,
LdthreadlocalVarVar_size_28,
LdthreadlocalVarVar_size_32,
LdthreadlocalVarVar_n_2,
LdthreadlocalVarVar_n_4,
StthreadlocalVarVar_i1,
StthreadlocalVarVar_u1,
StthreadlocalVarVar_i2,
StthreadlocalVarVar_u2,
StthreadlocalVarVar_i4,
StthreadlocalVarVar_u4,
StthreadlocalVarVar_i8,
StthreadlocalVarVar_u8,
StthreadlocalVarVar_ref,
StthreadlocalVarVar_size_8,
StthreadlocalVarVar_size_12,
StthreadlocalVarVar_size_16,
StthreadlocalVarVar_size_20,
StthreadlocalVarVar_size_24,
StthreadlocalVarVar_size_28,
StthreadlocalVarVar_size_32,
StthreadlocalVarVar_n_2,
StthreadlocalVarVar_n_4,
StthreadlocalVarVar_WriteBarrier_n_2,
StthreadlocalVarVar_WriteBarrier_n_4,
CheckThrowIfNullVar,
InitClassStaticCtor,
LdfldaLargeVarVar,
LdfldLargeVarVar_i1,
LdfldLargeVarVar_u1,
LdfldLargeVarVar_i2,
LdfldLargeVarVar_u2,
LdfldLargeVarVar_i4,
LdfldLargeVarVar_u4,
LdfldLargeVarVar_i8,
LdfldLargeVarVar_u8,
LdfldLargeVarVar_size_8,
LdfldLargeVarVar_size_12,
LdfldLargeVarVar_size_16,
LdfldLargeVarVar_size_20,
LdfldLargeVarVar_size_24,
LdfldLargeVarVar_size_28,
LdfldLargeVarVar_size_32,
LdfldLargeVarVar_n_2,
LdfldLargeVarVar_n_4,
LdfldValueTypeLargeVarVar_i1,
LdfldValueTypeLargeVarVar_u1,
LdfldValueTypeLargeVarVar_i2,
LdfldValueTypeLargeVarVar_u2,
LdfldValueTypeLargeVarVar_i4,
LdfldValueTypeLargeVarVar_u4,
LdfldValueTypeLargeVarVar_i8,
LdfldValueTypeLargeVarVar_u8,
LdfldValueTypeLargeVarVar_size_8,
LdfldValueTypeLargeVarVar_size_12,
LdfldValueTypeLargeVarVar_size_16,
LdfldValueTypeLargeVarVar_size_20,
LdfldValueTypeLargeVarVar_size_24,
LdfldValueTypeLargeVarVar_size_28,
LdfldValueTypeLargeVarVar_size_32,
LdfldValueTypeLargeVarVar_n_2,
LdfldValueTypeLargeVarVar_n_4,
StfldLargeVarVar_i1,
StfldLargeVarVar_u1,
StfldLargeVarVar_i2,
StfldLargeVarVar_u2,
StfldLargeVarVar_i4,
StfldLargeVarVar_u4,
StfldLargeVarVar_i8,
StfldLargeVarVar_u8,
StfldLargeVarVar_ref,
StfldLargeVarVar_size_8,
StfldLargeVarVar_size_12,
StfldLargeVarVar_size_16,
StfldLargeVarVar_size_20,
StfldLargeVarVar_size_24,
StfldLargeVarVar_size_28,
StfldLargeVarVar_size_32,
StfldLargeVarVar_n_2,
StfldLargeVarVar_n_4,
StfldLargeVarVar_WriteBarrier_n_2,
StfldLargeVarVar_WriteBarrier_n_4,
NewArrVarVar,
GetArrayLengthVarVar,
GetArrayElementAddressAddrVarVar,
GetArrayElementAddressCheckAddrVarVar,
GetArrayElementVarVar_i1,
GetArrayElementVarVar_u1,
GetArrayElementVarVar_i2,
GetArrayElementVarVar_u2,
GetArrayElementVarVar_i4,
GetArrayElementVarVar_u4,
GetArrayElementVarVar_i8,
GetArrayElementVarVar_u8,
GetArrayElementVarVar_size_1,
GetArrayElementVarVar_size_2,
GetArrayElementVarVar_size_4,
GetArrayElementVarVar_size_8,
GetArrayElementVarVar_size_12,
GetArrayElementVarVar_size_16,
GetArrayElementVarVar_size_20,
GetArrayElementVarVar_size_24,
GetArrayElementVarVar_size_28,
GetArrayElementVarVar_size_32,
GetArrayElementVarVar_n,
SetArrayElementVarVar_i1,
SetArrayElementVarVar_u1,
SetArrayElementVarVar_i2,
SetArrayElementVarVar_u2,
SetArrayElementVarVar_i4,
SetArrayElementVarVar_u4,
SetArrayElementVarVar_i8,
SetArrayElementVarVar_u8,
SetArrayElementVarVar_ref,
SetArrayElementVarVar_size_12,
SetArrayElementVarVar_size_16,
SetArrayElementVarVar_n,
SetArrayElementVarVar_WriteBarrier_n,
NewMdArrVarVar_length,
NewMdArrVarVar_length_bound,
GetMdArrElementVarVar_i1,
GetMdArrElementVarVar_u1,
GetMdArrElementVarVar_i2,
GetMdArrElementVarVar_u2,
GetMdArrElementVarVar_i4,
GetMdArrElementVarVar_u4,
GetMdArrElementVarVar_i8,
GetMdArrElementVarVar_u8,
GetMdArrElementVarVar_n,
GetMdArrElementAddressVarVar,
SetMdArrElementVarVar_i1,
SetMdArrElementVarVar_u1,
SetMdArrElementVarVar_i2,
SetMdArrElementVarVar_u2,
SetMdArrElementVarVar_i4,
SetMdArrElementVarVar_u4,
SetMdArrElementVarVar_i8,
SetMdArrElementVarVar_u8,
SetMdArrElementVarVar_ref,
SetMdArrElementVarVar_n,
SetMdArrElementVarVar_WriteBarrier_n,
ThrowEx,
RethrowEx,
LeaveEx,
LeaveEx_Directly,
EndFilterEx,
EndFinallyEx,
NullableNewVarVar,
NullableCtorVarVar,
NullableHasValueVar,
NullableGetValueOrDefaultVarVar,
NullableGetValueOrDefaultVarVar_1,
NullableGetValueVarVar,
InterlockedCompareExchangeVarVarVarVar_i4,
InterlockedCompareExchangeVarVarVarVar_i8,
InterlockedCompareExchangeVarVarVarVar_pointer,
InterlockedExchangeVarVarVar_i4,
InterlockedExchangeVarVarVar_i8,
InterlockedExchangeVarVarVar_pointer,
NewSystemObjectVar,
NewVector2,
NewVector3_2,
NewVector3_3,
NewVector4_2,
NewVector4_3,
NewVector4_4,
CtorVector2,
CtorVector3_2,
CtorVector3_3,
CtorVector4_2,
CtorVector4_3,
CtorVector4_4,
ArrayGetGenericValueImpl,
ArraySetGenericValueImpl,
NewString,
NewString_2,
NewString_3,
UnsafeEnumCast,
GetEnumHashCode,
AssemblyGetExecutingAssembly,
MethodBaseGetCurrentMethod,
//!!!}}OPCODE
};
struct IRCommon
{
HiOpcodeEnum type;
};
#pragma region instruction
#pragma pack(push, 1)
//!!!{{INST
struct IRInitLocals_n_2 : IRCommon
{
uint16_t size;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitLocals_n_4 : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint32_t size;
};
struct IRInitLocals_size_8 : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitLocals_size_16 : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitLocals_size_24 : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitLocals_size_32 : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitInlineLocals_n_2 : IRCommon
{
uint16_t size;
uint32_t offset;
};
struct IRInitInlineLocals_n_4 : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint32_t size;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRInitInlineLocals_size_8 : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint32_t offset;
};
struct IRInitInlineLocals_size_16 : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint32_t offset;
};
struct IRInitInlineLocals_size_24 : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint32_t offset;
};
struct IRInitInlineLocals_size_32 : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint32_t offset;
};
struct IRLdlocVarVar : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdlocExpandVarVar_i1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdlocExpandVarVar_u1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdlocExpandVarVar_i2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdlocExpandVarVar_u2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdlocVarVarSize : IRCommon
{
uint16_t dst;
uint16_t src;
uint16_t size;
};
struct IRLdlocVarAddress : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdcVarConst_1 : IRCommon
{
uint8_t src;
uint8_t __pad3;
uint16_t dst;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdcVarConst_2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdcVarConst_4 : IRCommon
{
uint16_t dst;
uint32_t src;
};
struct IRLdcVarConst_8 : IRCommon
{
uint16_t dst;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
uint64_t src;
};
struct IRLdnullVar : IRCommon
{
uint16_t dst;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdindVarVar_i1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdindVarVar_u1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdindVarVar_i2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdindVarVar_u2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdindVarVar_i4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdindVarVar_u4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdindVarVar_i8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdindVarVar_f4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdindVarVar_f8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStindVarVar_i1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStindVarVar_i2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStindVarVar_i4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStindVarVar_i8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStindVarVar_f4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStindVarVar_f8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStindVarVar_ref : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLocalAllocVarVar_n_2 : IRCommon
{
uint16_t dst;
uint16_t size;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLocalAllocVarVar_n_4 : IRCommon
{
uint16_t dst;
uint16_t size;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitblkVarVarVar : IRCommon
{
uint16_t addr;
uint16_t value;
uint16_t size;
};
struct IRCpblkVarVar : IRCommon
{
uint16_t dst;
uint16_t src;
uint16_t size;
};
struct IRMemoryBarrier : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i4_i1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i4_u1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i4_i2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i4_u2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i4_i4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i4_u4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i4_i8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i4_u8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i4_f4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i4_f8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u4_i1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u4_u1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u4_i2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u4_u2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u4_i4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u4_u4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u4_i8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u4_u8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u4_f4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u4_f8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i8_i1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i8_u1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i8_i2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i8_u2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i8_i4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i8_u4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i8_i8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i8_u8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i8_f4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_i8_f8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u8_i1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u8_u1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u8_i2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u8_u2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u8_i4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u8_u4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u8_i8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u8_u8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u8_f4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_u8_f8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f4_i1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f4_u1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f4_i2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f4_u2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f4_i4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f4_u4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f4_i8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f4_u8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f4_f4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f4_f8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f8_i1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f8_u1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f8_i2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f8_u2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f8_i4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f8_u4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f8_i8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f8_u8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f8_f4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertVarVar_f8_f8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_i4_i1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_i4_u1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_i4_i2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_i4_u2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_i4_i4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_i4_u4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_i4_i8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_i4_u8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_u4_i1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_u4_u1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_u4_i2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_u4_u2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_u4_i4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_u4_u4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_u4_i8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_u4_u8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_i8_i1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_i8_u1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_i8_i2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_i8_u2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_i8_i4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_i8_u4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_i8_i8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_i8_u8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_u8_i1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_u8_u1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_u8_i2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_u8_u2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_u8_i4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_u8_u4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_u8_i8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_u8_u8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_f4_i1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_f4_u1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_f4_i2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_f4_u2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_f4_i4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_f4_u4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_f4_i8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_f4_u8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_f8_i1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_f8_u1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_f8_i2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_f8_u2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_f8_i4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_f8_u4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_f8_i8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRConvertOverflowVarVar_f8_u8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRBinOpVarVarVar_Add_i4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Sub_i4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Mul_i4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_MulUn_i4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Div_i4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_DivUn_i4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Rem_i4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_RemUn_i4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_And_i4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Or_i4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Xor_i4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Add_i8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Sub_i8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Mul_i8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_MulUn_i8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Div_i8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_DivUn_i8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Rem_i8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_RemUn_i8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_And_i8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Or_i8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Xor_i8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Add_f4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Sub_f4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Mul_f4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Div_f4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Rem_f4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Add_f8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Sub_f8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Mul_f8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Div_f8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpVarVarVar_Rem_f8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpOverflowVarVarVar_Add_i4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpOverflowVarVarVar_Sub_i4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpOverflowVarVarVar_Mul_i4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpOverflowVarVarVar_Add_i8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpOverflowVarVarVar_Sub_i8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpOverflowVarVarVar_Mul_i8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpOverflowVarVarVar_Add_u4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpOverflowVarVarVar_Sub_u4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpOverflowVarVarVar_Mul_u4 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpOverflowVarVarVar_Add_u8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpOverflowVarVarVar_Sub_u8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBinOpOverflowVarVarVar_Mul_u8 : IRCommon
{
uint16_t ret;
uint16_t op1;
uint16_t op2;
};
struct IRBitShiftBinOpVarVarVar_Shl_i4_i4 : IRCommon
{
uint16_t ret;
uint16_t value;
uint16_t shiftAmount;
};
struct IRBitShiftBinOpVarVarVar_Shr_i4_i4 : IRCommon
{
uint16_t ret;
uint16_t value;
uint16_t shiftAmount;
};
struct IRBitShiftBinOpVarVarVar_ShrUn_i4_i4 : IRCommon
{
uint16_t ret;
uint16_t value;
uint16_t shiftAmount;
};
struct IRBitShiftBinOpVarVarVar_Shl_i4_i8 : IRCommon
{
uint16_t ret;
uint16_t value;
uint16_t shiftAmount;
};
struct IRBitShiftBinOpVarVarVar_Shr_i4_i8 : IRCommon
{
uint16_t ret;
uint16_t value;
uint16_t shiftAmount;
};
struct IRBitShiftBinOpVarVarVar_ShrUn_i4_i8 : IRCommon
{
uint16_t ret;
uint16_t value;
uint16_t shiftAmount;
};
struct IRBitShiftBinOpVarVarVar_Shl_i8_i4 : IRCommon
{
uint16_t ret;
uint16_t value;
uint16_t shiftAmount;
};
struct IRBitShiftBinOpVarVarVar_Shr_i8_i4 : IRCommon
{
uint16_t ret;
uint16_t value;
uint16_t shiftAmount;
};
struct IRBitShiftBinOpVarVarVar_ShrUn_i8_i4 : IRCommon
{
uint16_t ret;
uint16_t value;
uint16_t shiftAmount;
};
struct IRBitShiftBinOpVarVarVar_Shl_i8_i8 : IRCommon
{
uint16_t ret;
uint16_t value;
uint16_t shiftAmount;
};
struct IRBitShiftBinOpVarVarVar_Shr_i8_i8 : IRCommon
{
uint16_t ret;
uint16_t value;
uint16_t shiftAmount;
};
struct IRBitShiftBinOpVarVarVar_ShrUn_i8_i8 : IRCommon
{
uint16_t ret;
uint16_t value;
uint16_t shiftAmount;
};
struct IRUnaryOpVarVar_Neg_i4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRUnaryOpVarVar_Not_i4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRUnaryOpVarVar_Neg_i8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRUnaryOpVarVar_Not_i8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRUnaryOpVarVar_Neg_f4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRUnaryOpVarVar_Neg_f8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRCheckFiniteVar_f4 : IRCommon
{
uint16_t src;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRCheckFiniteVar_f8 : IRCommon
{
uint16_t src;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRCompOpVarVarVar_Ceq_i4 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_Ceq_i8 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_Ceq_f4 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_Ceq_f8 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_Cgt_i4 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_Cgt_i8 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_Cgt_f4 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_Cgt_f8 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_CgtUn_i4 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_CgtUn_i8 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_CgtUn_f4 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_CgtUn_f8 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_Clt_i4 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_Clt_i8 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_Clt_f4 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_Clt_f8 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_CltUn_i4 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_CltUn_i8 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_CltUn_f4 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRCompOpVarVarVar_CltUn_f8 : IRCommon
{
uint16_t ret;
uint16_t c1;
uint16_t c2;
};
struct IRBranchUncondition_4 : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
int32_t offset;
};
struct IRBranchTrueVar_i4 : IRCommon
{
uint16_t op;
int32_t offset;
};
struct IRBranchTrueVar_i8 : IRCommon
{
uint16_t op;
int32_t offset;
};
struct IRBranchFalseVar_i4 : IRCommon
{
uint16_t op;
int32_t offset;
};
struct IRBranchFalseVar_i8 : IRCommon
{
uint16_t op;
int32_t offset;
};
struct IRBranchVarVar_Ceq_i4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Ceq_i8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Ceq_f4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Ceq_f8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CneUn_i4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CneUn_i8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CneUn_f4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CneUn_f8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Cgt_i4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Cgt_i8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Cgt_f4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Cgt_f8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CgtUn_i4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CgtUn_i8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CgtUn_f4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CgtUn_f8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Cge_i4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Cge_i8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Cge_f4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Cge_f8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CgeUn_i4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CgeUn_i8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CgeUn_f4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CgeUn_f8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Clt_i4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Clt_i8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Clt_f4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Clt_f8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CltUn_i4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CltUn_i8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CltUn_f4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CltUn_f8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Cle_i4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Cle_i8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Cle_f4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_Cle_f8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CleUn_i4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CleUn_i8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CleUn_f4 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchVarVar_CleUn_f8 : IRCommon
{
uint16_t op1;
uint16_t op2;
uint8_t __pad6;
uint8_t __pad7;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRBranchJump : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint32_t token;
};
struct IRBranchSwitch : IRCommon
{
uint16_t value;
uint32_t caseNum;
uint32_t caseOffsets;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRNewClassVar : IRCommon
{
uint16_t obj;
uint32_t managed2NativeMethod;
uint32_t method;
uint32_t argIdxs;
};
struct IRNewClassVar_Ctor_0 : IRCommon
{
uint16_t obj;
uint32_t method;
};
struct IRNewClassVar_NotCtor : IRCommon
{
uint16_t obj;
uint32_t klass;
};
struct IRNewValueTypeVar : IRCommon
{
uint16_t obj;
uint32_t managed2NativeMethod;
uint32_t method;
uint32_t argIdxs;
};
struct IRNewValueTypeVar_Ctor_0 : IRCommon
{
uint16_t obj;
uint16_t size;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRNewClassInterpVar : IRCommon
{
uint16_t obj;
uint16_t argBase;
uint16_t argStackObjectNum;
uint16_t ctorFrameBase;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRNewClassInterpVar_Ctor_0 : IRCommon
{
uint16_t obj;
uint16_t ctorFrameBase;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRNewValueTypeInterpVar : IRCommon
{
uint16_t obj;
uint16_t argBase;
uint16_t argStackObjectNum;
uint16_t ctorFrameBase;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRAdjustValueTypeRefVar : IRCommon
{
uint16_t data;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRBoxRefVarVar : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdvirftnVarVar : IRCommon
{
uint16_t resultMethod;
uint16_t obj;
uint8_t __pad6;
uint8_t __pad7;
uint32_t virtualMethod;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRRetVar_ret_1 : IRCommon
{
uint16_t ret;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRRetVar_ret_2 : IRCommon
{
uint16_t ret;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRRetVar_ret_4 : IRCommon
{
uint16_t ret;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRRetVar_ret_8 : IRCommon
{
uint16_t ret;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRRetVar_ret_12 : IRCommon
{
uint16_t ret;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRRetVar_ret_16 : IRCommon
{
uint16_t ret;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRRetVar_ret_20 : IRCommon
{
uint16_t ret;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRRetVar_ret_24 : IRCommon
{
uint16_t ret;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRRetVar_ret_28 : IRCommon
{
uint16_t ret;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRRetVar_ret_32 : IRCommon
{
uint16_t ret;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRRetVar_ret_n : IRCommon
{
uint16_t ret;
uint32_t size;
};
struct IRRetVar_void : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRCallNativeInstance_void : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint32_t managed2NativeMethod;
uint32_t methodInfo;
uint32_t argIdxs;
};
struct IRCallNativeInstance_ret : IRCommon
{
uint16_t ret;
uint32_t managed2NativeMethod;
uint32_t methodInfo;
uint32_t argIdxs;
};
struct IRCallNativeInstance_ret_expand : IRCommon
{
uint8_t retLocationType;
uint8_t __pad3;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t managed2NativeMethod;
uint32_t methodInfo;
uint32_t argIdxs;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallNativeStatic_void : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint32_t managed2NativeMethod;
uint32_t methodInfo;
uint32_t argIdxs;
};
struct IRCallNativeStatic_ret : IRCommon
{
uint16_t ret;
uint32_t managed2NativeMethod;
uint32_t methodInfo;
uint32_t argIdxs;
};
struct IRCallNativeStatic_ret_expand : IRCommon
{
uint8_t retLocationType;
uint8_t __pad3;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t managed2NativeMethod;
uint32_t methodInfo;
uint32_t argIdxs;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallInterp_void : IRCommon
{
uint16_t argBase;
uint32_t methodInfo;
};
struct IRCallInterp_ret : IRCommon
{
uint16_t argBase;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t methodInfo;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallVirtual_void : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint32_t managed2NativeMethod;
uint32_t methodInfo;
uint32_t argIdxs;
};
struct IRCallVirtual_ret : IRCommon
{
uint16_t ret;
uint32_t managed2NativeMethod;
uint32_t methodInfo;
uint32_t argIdxs;
};
struct IRCallVirtual_ret_expand : IRCommon
{
uint8_t retLocationType;
uint8_t __pad3;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t managed2NativeMethod;
uint32_t methodInfo;
uint32_t argIdxs;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallInterpVirtual_void : IRCommon
{
uint16_t argBase;
uint32_t method;
};
struct IRCallInterpVirtual_ret : IRCommon
{
uint16_t argBase;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallInd_void : IRCommon
{
uint8_t isMethodInfoPointer;
uint8_t __pad3;
uint32_t managed2NativeMethod;
uint32_t managed2NativeFunctionPointerMethod;
uint32_t methodInfo;
uint32_t argIdxs;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallInd_ret : IRCommon
{
uint8_t isMethodInfoPointer;
uint8_t __pad3;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t managed2NativeMethod;
uint32_t managed2NativeFunctionPointerMethod;
uint32_t methodInfo;
uint32_t argIdxs;
};
struct IRCallInd_ret_expand : IRCommon
{
uint8_t isMethodInfoPointer;
uint8_t retLocationType;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t managed2NativeMethod;
uint32_t managed2NativeFunctionPointerMethod;
uint32_t methodInfo;
uint32_t argIdxs;
};
struct IRCallPInvoke_void : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint32_t managed2NativeFunctionPointerMethod;
uint32_t pinvokeMethodPointer;
uint32_t argIdxs;
};
struct IRCallPInvoke_ret : IRCommon
{
uint16_t ret;
uint32_t managed2NativeFunctionPointerMethod;
uint32_t pinvokeMethodPointer;
uint32_t argIdxs;
};
struct IRCallPInvoke_ret_expand : IRCommon
{
uint8_t retLocationType;
uint8_t __pad3;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t managed2NativeFunctionPointerMethod;
uint32_t pinvokeMethodPointer;
uint32_t argIdxs;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallDelegateInvoke_void : IRCommon
{
uint16_t invokeParamCount;
uint32_t managed2NativeStaticMethod;
uint32_t managed2NativeInstanceMethod;
uint32_t argIdxs;
};
struct IRCallDelegateInvoke_ret : IRCommon
{
uint16_t ret;
uint16_t invokeParamCount;
uint16_t retTypeStackObjectSize;
uint32_t managed2NativeStaticMethod;
uint32_t managed2NativeInstanceMethod;
uint32_t argIdxs;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallDelegateInvoke_ret_expand : IRCommon
{
uint8_t retLocationType;
uint8_t __pad3;
uint16_t ret;
uint16_t invokeParamCount;
uint32_t managed2NativeStaticMethod;
uint32_t managed2NativeInstanceMethod;
uint32_t argIdxs;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallDelegateBeginInvoke : IRCommon
{
uint16_t result;
uint32_t methodInfo;
uint32_t argIdxs;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallDelegateEndInvoke_void : IRCommon
{
uint16_t asyncResult;
uint32_t methodInfo;
};
struct IRCallDelegateEndInvoke_ret : IRCommon
{
uint16_t asyncResult;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t methodInfo;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRNewDelegate : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t method;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCtorDelegate : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t method;
uint32_t ctor;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_v_0 : IRCommon
{
uint16_t self;
uint32_t method;
};
struct IRCallCommonNativeInstance_i1_0 : IRCommon
{
uint16_t self;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_u1_0 : IRCommon
{
uint16_t self;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_i2_0 : IRCommon
{
uint16_t self;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_u2_0 : IRCommon
{
uint16_t self;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_i4_0 : IRCommon
{
uint16_t self;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_i8_0 : IRCommon
{
uint16_t self;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_f4_0 : IRCommon
{
uint16_t self;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_f8_0 : IRCommon
{
uint16_t self;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_v_i4_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_v_i4_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_v_i4_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_v_i4_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint32_t method;
};
struct IRCallCommonNativeInstance_v_i8_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_v_i8_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_v_i8_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_v_i8_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint32_t method;
};
struct IRCallCommonNativeInstance_v_f4_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_v_f4_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_v_f4_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_v_f4_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint32_t method;
};
struct IRCallCommonNativeInstance_v_f8_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_v_f8_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_v_f8_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_v_f8_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint32_t method;
};
struct IRCallCommonNativeInstance_u1_i4_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_u1_i4_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_u1_i4_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_u1_i4_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_u1_i8_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_u1_i8_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_u1_i8_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_u1_i8_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_u1_f4_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_u1_f4_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_u1_f4_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_u1_f4_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_u1_f8_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_u1_f8_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_u1_f8_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_u1_f8_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_i4_i4_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_i4_i4_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_i4_i4_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_i4_i4_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_i4_i8_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_i4_i8_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_i4_i8_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_i4_i8_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_i4_f4_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_i4_f4_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_i4_f4_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_i4_f4_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_i4_f8_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_i4_f8_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_i4_f8_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_i4_f8_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_i8_i4_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_i8_i4_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_i8_i4_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_i8_i4_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_i8_i8_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_i8_i8_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_i8_i8_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_i8_i8_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_i8_f4_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_i8_f4_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_i8_f4_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_i8_f4_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_i8_f8_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_i8_f8_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_i8_f8_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_i8_f8_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_f4_i4_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_f4_i4_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_f4_i4_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_f4_i4_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_f4_i8_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_f4_i8_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_f4_i8_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_f4_i8_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_f4_f4_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_f4_f4_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_f4_f4_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_f4_f4_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_f4_f8_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_f4_f8_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_f4_f8_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_f4_f8_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_f8_i4_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_f8_i4_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_f8_i4_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_f8_i4_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_f8_i8_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_f8_i8_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_f8_i8_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_f8_i8_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_f8_f4_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_f8_f4_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_f8_f4_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_f8_f4_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeInstance_f8_f8_1 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeInstance_f8_f8_2 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeInstance_f8_f8_3 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeInstance_f8_f8_4 : IRCommon
{
uint16_t self;
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint8_t __pad14;
uint8_t __pad15;
uint32_t method;
uint8_t __pad20;
uint8_t __pad21;
uint8_t __pad22;
uint8_t __pad23;
};
struct IRCallCommonNativeStatic_v_0 : IRCommon
{
uint8_t __pad2;
uint8_t __pad3;
uint32_t method;
};
struct IRCallCommonNativeStatic_i1_0 : IRCommon
{
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_u1_0 : IRCommon
{
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_i2_0 : IRCommon
{
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_u2_0 : IRCommon
{
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_i4_0 : IRCommon
{
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_i8_0 : IRCommon
{
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_f4_0 : IRCommon
{
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_f8_0 : IRCommon
{
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_v_i4_1 : IRCommon
{
uint16_t param0;
uint32_t method;
};
struct IRCallCommonNativeStatic_v_i4_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_v_i4_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_v_i4_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_v_i8_1 : IRCommon
{
uint16_t param0;
uint32_t method;
};
struct IRCallCommonNativeStatic_v_i8_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_v_i8_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_v_i8_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_v_f4_1 : IRCommon
{
uint16_t param0;
uint32_t method;
};
struct IRCallCommonNativeStatic_v_f4_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_v_f4_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_v_f4_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_v_f8_1 : IRCommon
{
uint16_t param0;
uint32_t method;
};
struct IRCallCommonNativeStatic_v_f8_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_v_f8_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_v_f8_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_u1_i4_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_u1_i4_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_u1_i4_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_u1_i4_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_u1_i8_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_u1_i8_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_u1_i8_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_u1_i8_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_u1_f4_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_u1_f4_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_u1_f4_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_u1_f4_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_u1_f8_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_u1_f8_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_u1_f8_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_u1_f8_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_i4_i4_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_i4_i4_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_i4_i4_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_i4_i4_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_i4_i8_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_i4_i8_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_i4_i8_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_i4_i8_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_i4_f4_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_i4_f4_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_i4_f4_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_i4_f4_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_i4_f8_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_i4_f8_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_i4_f8_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_i4_f8_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_i8_i4_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_i8_i4_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_i8_i4_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_i8_i4_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_i8_i8_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_i8_i8_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_i8_i8_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_i8_i8_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_i8_f4_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_i8_f4_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_i8_f4_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_i8_f4_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_i8_f8_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_i8_f8_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_i8_f8_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_i8_f8_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_f4_i4_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_f4_i4_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_f4_i4_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_f4_i4_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_f4_i8_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_f4_i8_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_f4_i8_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_f4_i8_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_f4_f4_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_f4_f4_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_f4_f4_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_f4_f4_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_f4_f8_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_f4_f8_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_f4_f8_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_f4_f8_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_f8_i4_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_f8_i4_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_f8_i4_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_f8_i4_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_f8_i8_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_f8_i8_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_f8_i8_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_f8_i8_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_f8_f4_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_f8_f4_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_f8_f4_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_f8_f4_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRCallCommonNativeStatic_f8_f8_1 : IRCommon
{
uint16_t param0;
uint16_t ret;
uint8_t __pad6;
uint8_t __pad7;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_f8_f8_2 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t ret;
uint32_t method;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCallCommonNativeStatic_f8_f8_3 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t ret;
uint8_t __pad10;
uint8_t __pad11;
uint32_t method;
};
struct IRCallCommonNativeStatic_f8_f8_4 : IRCommon
{
uint16_t param0;
uint16_t param1;
uint16_t param2;
uint16_t param3;
uint16_t ret;
uint32_t method;
};
struct IRBoxVarVar : IRCommon
{
uint16_t dst;
uint16_t data;
uint8_t __pad6;
uint8_t __pad7;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRUnBoxVarVar : IRCommon
{
uint16_t addr;
uint16_t obj;
uint8_t __pad6;
uint8_t __pad7;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRUnBoxAnyVarVar : IRCommon
{
uint16_t dst;
uint16_t obj;
uint8_t __pad6;
uint8_t __pad7;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCastclassVar : IRCommon
{
uint16_t obj;
uint32_t klass;
};
struct IRIsInstVar : IRCommon
{
uint16_t obj;
uint32_t klass;
};
struct IRLdtokenVar : IRCommon
{
uint16_t runtimeHandle;
uint32_t token;
};
struct IRMakeRefVarVar : IRCommon
{
uint16_t dst;
uint16_t data;
uint8_t __pad6;
uint8_t __pad7;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRRefAnyTypeVarVar : IRCommon
{
uint16_t dst;
uint16_t typedRef;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRRefAnyValueVarVar : IRCommon
{
uint16_t addr;
uint16_t typedRef;
uint8_t __pad6;
uint8_t __pad7;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCpobjVarVar_ref : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRCpobjVarVar_1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRCpobjVarVar_2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRCpobjVarVar_4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRCpobjVarVar_8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRCpobjVarVar_12 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRCpobjVarVar_16 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRCpobjVarVar_20 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRCpobjVarVar_24 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRCpobjVarVar_28 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRCpobjVarVar_32 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRCpobjVarVar_n_2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint16_t size;
};
struct IRCpobjVarVar_n_4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
uint32_t size;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRCpobjVarVar_WriteBarrier_n_2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint16_t size;
};
struct IRCpobjVarVar_WriteBarrier_n_4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
uint32_t size;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdobjVarVar_ref : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdobjVarVar_1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdobjVarVar_2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdobjVarVar_4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdobjVarVar_8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdobjVarVar_12 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdobjVarVar_16 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdobjVarVar_20 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdobjVarVar_24 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdobjVarVar_28 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdobjVarVar_32 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRLdobjVarVar_n_4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
uint32_t size;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStobjVarVar_ref : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStobjVarVar_1 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStobjVarVar_2 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStobjVarVar_4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStobjVarVar_8 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStobjVarVar_12 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStobjVarVar_16 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStobjVarVar_20 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStobjVarVar_24 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStobjVarVar_28 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStobjVarVar_32 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRStobjVarVar_n_4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
uint32_t size;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStobjVarVar_WriteBarrier_n_4 : IRCommon
{
uint16_t dst;
uint16_t src;
uint8_t __pad6;
uint8_t __pad7;
uint32_t size;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRInitobjVar_ref : IRCommon
{
uint16_t obj;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitobjVar_1 : IRCommon
{
uint16_t obj;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitobjVar_2 : IRCommon
{
uint16_t obj;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitobjVar_4 : IRCommon
{
uint16_t obj;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitobjVar_8 : IRCommon
{
uint16_t obj;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitobjVar_12 : IRCommon
{
uint16_t obj;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitobjVar_16 : IRCommon
{
uint16_t obj;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitobjVar_20 : IRCommon
{
uint16_t obj;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitobjVar_24 : IRCommon
{
uint16_t obj;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitobjVar_28 : IRCommon
{
uint16_t obj;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitobjVar_32 : IRCommon
{
uint16_t obj;
uint8_t __pad4;
uint8_t __pad5;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitobjVar_n_2 : IRCommon
{
uint16_t obj;
uint16_t size;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitobjVar_n_4 : IRCommon
{
uint16_t obj;
uint32_t size;
};
struct IRInitobjVar_WriteBarrier_n_2 : IRCommon
{
uint16_t obj;
uint16_t size;
uint8_t __pad6;
uint8_t __pad7;
};
struct IRInitobjVar_WriteBarrier_n_4 : IRCommon
{
uint16_t obj;
uint32_t size;
};
struct IRLdstrVar : IRCommon
{
uint16_t dst;
uint32_t str;
};
struct IRLdfldVarVar_i1 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldVarVar_u1 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldVarVar_i2 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldVarVar_u2 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldVarVar_i4 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldVarVar_u4 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldVarVar_i8 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldVarVar_u8 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldVarVar_size_8 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldVarVar_size_12 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldVarVar_size_16 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldVarVar_size_20 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldVarVar_size_24 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldVarVar_size_28 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldVarVar_size_32 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldVarVar_n_2 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
uint16_t size;
uint8_t __pad10;
uint8_t __pad11;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdfldVarVar_n_4 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
uint32_t size;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdfldValueTypeVarVar_i1 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldValueTypeVarVar_u1 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldValueTypeVarVar_i2 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldValueTypeVarVar_u2 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldValueTypeVarVar_i4 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldValueTypeVarVar_u4 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldValueTypeVarVar_i8 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldValueTypeVarVar_u8 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldValueTypeVarVar_size_8 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldValueTypeVarVar_size_12 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldValueTypeVarVar_size_16 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldValueTypeVarVar_size_20 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldValueTypeVarVar_size_24 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldValueTypeVarVar_size_28 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldValueTypeVarVar_size_32 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRLdfldValueTypeVarVar_n_2 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
uint16_t size;
uint8_t __pad10;
uint8_t __pad11;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdfldValueTypeVarVar_n_4 : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
uint32_t size;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdfldaVarVar : IRCommon
{
uint16_t dst;
uint16_t obj;
uint16_t offset;
};
struct IRStfldVarVar_i1 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
};
struct IRStfldVarVar_u1 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
};
struct IRStfldVarVar_i2 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
};
struct IRStfldVarVar_u2 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
};
struct IRStfldVarVar_i4 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
};
struct IRStfldVarVar_u4 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
};
struct IRStfldVarVar_i8 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
};
struct IRStfldVarVar_u8 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
};
struct IRStfldVarVar_ref : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
};
struct IRStfldVarVar_size_8 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
};
struct IRStfldVarVar_size_12 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
};
struct IRStfldVarVar_size_16 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
};
struct IRStfldVarVar_size_20 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
};
struct IRStfldVarVar_size_24 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
};
struct IRStfldVarVar_size_28 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
};
struct IRStfldVarVar_size_32 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
};
struct IRStfldVarVar_n_2 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
uint16_t size;
uint8_t __pad10;
uint8_t __pad11;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStfldVarVar_n_4 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
uint32_t size;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStfldVarVar_WriteBarrier_n_2 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
uint16_t size;
uint8_t __pad10;
uint8_t __pad11;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStfldVarVar_WriteBarrier_n_4 : IRCommon
{
uint16_t obj;
uint16_t offset;
uint16_t data;
uint32_t size;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldVarVar_i1 : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldVarVar_u1 : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldVarVar_i2 : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldVarVar_u2 : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldVarVar_i4 : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldVarVar_u4 : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldVarVar_i8 : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldVarVar_u8 : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldVarVar_size_8 : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldVarVar_size_12 : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldVarVar_size_16 : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldVarVar_size_20 : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldVarVar_size_24 : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldVarVar_size_28 : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldVarVar_size_32 : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldVarVar_n_2 : IRCommon
{
uint16_t dst;
uint16_t size;
uint8_t __pad6;
uint8_t __pad7;
uint32_t klass;
uint32_t offset;
};
struct IRLdsfldVarVar_n_4 : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint32_t size;
};
struct IRStsfldVarVar_i1 : IRCommon
{
uint16_t data;
uint32_t offset;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStsfldVarVar_u1 : IRCommon
{
uint16_t data;
uint32_t offset;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStsfldVarVar_i2 : IRCommon
{
uint16_t data;
uint32_t offset;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStsfldVarVar_u2 : IRCommon
{
uint16_t data;
uint32_t offset;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStsfldVarVar_i4 : IRCommon
{
uint16_t data;
uint32_t offset;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStsfldVarVar_u4 : IRCommon
{
uint16_t data;
uint32_t offset;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStsfldVarVar_i8 : IRCommon
{
uint16_t data;
uint32_t offset;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStsfldVarVar_u8 : IRCommon
{
uint16_t data;
uint32_t offset;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStsfldVarVar_ref : IRCommon
{
uint16_t data;
uint32_t offset;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStsfldVarVar_size_8 : IRCommon
{
uint16_t data;
uint32_t offset;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStsfldVarVar_size_12 : IRCommon
{
uint16_t data;
uint32_t offset;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStsfldVarVar_size_16 : IRCommon
{
uint16_t data;
uint32_t offset;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStsfldVarVar_size_20 : IRCommon
{
uint16_t data;
uint32_t offset;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStsfldVarVar_size_24 : IRCommon
{
uint16_t data;
uint32_t offset;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStsfldVarVar_size_28 : IRCommon
{
uint16_t data;
uint32_t offset;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStsfldVarVar_size_32 : IRCommon
{
uint16_t data;
uint32_t offset;
uint32_t klass;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRStsfldVarVar_n_2 : IRCommon
{
uint16_t data;
uint16_t size;
uint8_t __pad6;
uint8_t __pad7;
uint32_t klass;
uint32_t offset;
};
struct IRStsfldVarVar_n_4 : IRCommon
{
uint16_t data;
uint32_t klass;
uint32_t offset;
uint32_t size;
};
struct IRStsfldVarVar_WriteBarrier_n_2 : IRCommon
{
uint16_t data;
uint16_t size;
uint8_t __pad6;
uint8_t __pad7;
uint32_t klass;
uint32_t offset;
};
struct IRStsfldVarVar_WriteBarrier_n_4 : IRCommon
{
uint16_t data;
uint32_t klass;
uint32_t offset;
uint32_t size;
};
struct IRLdsfldaVarVar : IRCommon
{
uint16_t dst;
uint32_t klass;
uint32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdsfldaFromFieldDataVarVar : IRCommon
{
uint16_t dst;
uint32_t src;
};
struct IRLdthreadlocalaVarVar : IRCommon
{
uint16_t dst;
uint32_t klass;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdthreadlocalVarVar_i1 : IRCommon
{
uint16_t dst;
uint32_t klass;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdthreadlocalVarVar_u1 : IRCommon
{
uint16_t dst;
uint32_t klass;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdthreadlocalVarVar_i2 : IRCommon
{
uint16_t dst;
uint32_t klass;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdthreadlocalVarVar_u2 : IRCommon
{
uint16_t dst;
uint32_t klass;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdthreadlocalVarVar_i4 : IRCommon
{
uint16_t dst;
uint32_t klass;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdthreadlocalVarVar_u4 : IRCommon
{
uint16_t dst;
uint32_t klass;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdthreadlocalVarVar_i8 : IRCommon
{
uint16_t dst;
uint32_t klass;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdthreadlocalVarVar_u8 : IRCommon
{
uint16_t dst;
uint32_t klass;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdthreadlocalVarVar_size_8 : IRCommon
{
uint16_t dst;
uint32_t klass;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdthreadlocalVarVar_size_12 : IRCommon
{
uint16_t dst;
uint32_t klass;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdthreadlocalVarVar_size_16 : IRCommon
{
uint16_t dst;
uint32_t klass;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdthreadlocalVarVar_size_20 : IRCommon
{
uint16_t dst;
uint32_t klass;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdthreadlocalVarVar_size_24 : IRCommon
{
uint16_t dst;
uint32_t klass;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdthreadlocalVarVar_size_28 : IRCommon
{
uint16_t dst;
uint32_t klass;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdthreadlocalVarVar_size_32 : IRCommon
{
uint16_t dst;
uint32_t klass;
int32_t offset;
uint8_t __pad12;
uint8_t __pad13;
uint8_t __pad14;
uint8_t __pad15;
};
struct IRLdthreadlocalVarVar_n_2 : IRCommon
{
uint16_t dst;
uint16_t size;
uint8_t __pad6;
uint8_t
gitextract_uw9a1g60/
├── .github/
│ ├── FUNDING.yml
│ └── ISSUE_TEMPLATE/
│ └── bug_report.md
├── .gitignore
├── LICENSE
├── README.md
├── README_EN.md
├── docs/
│ └── _config.yml
└── hybridclr/
├── CommonDef.cpp
├── CommonDef.h
├── Il2CppCompatibleDef.cpp
├── Il2CppCompatibleDef.h
├── Runtime.cpp
├── Runtime.h
├── RuntimeApi.cpp
├── RuntimeApi.h
├── RuntimeConfig.cpp
├── RuntimeConfig.h
├── generated/
│ ├── AssemblyManifest.cpp
│ ├── MethodBridge.cpp
│ └── UnityVersion.h
├── interpreter/
│ ├── Engine.cpp
│ ├── Engine.h
│ ├── InstrinctDef.h
│ ├── Instruction.cpp
│ ├── Instruction.h
│ ├── Interpreter.cpp
│ ├── Interpreter.h
│ ├── InterpreterDefs.cpp
│ ├── InterpreterDefs.h
│ ├── InterpreterModule.cpp
│ ├── InterpreterModule.h
│ ├── InterpreterUtil.cpp
│ ├── InterpreterUtil.h
│ ├── Interpreter_Execute.cpp
│ ├── MemoryUtil.h
│ ├── MethodBridge.cpp
│ └── MethodBridge.h
├── metadata/
│ ├── AOTHomologousImage.cpp
│ ├── AOTHomologousImage.h
│ ├── Assembly.cpp
│ ├── Assembly.h
│ ├── BlobReader.h
│ ├── ClassFieldLayoutCalculator.cpp
│ ├── ClassFieldLayoutCalculator.h
│ ├── Coff.h
│ ├── ConsistentAOTHomologousImage.cpp
│ ├── ConsistentAOTHomologousImage.h
│ ├── CustomAttributeDataWriter.h
│ ├── Image.cpp
│ ├── Image.h
│ ├── InterpreterImage.cpp
│ ├── InterpreterImage.h
│ ├── MetadataDef.h
│ ├── MetadataModule.cpp
│ ├── MetadataModule.h
│ ├── MetadataPool.cpp
│ ├── MetadataPool.h
│ ├── MetadataReader.h
│ ├── MetadataUtil.cpp
│ ├── MetadataUtil.h
│ ├── MethodBodyCache.cpp
│ ├── MethodBodyCache.h
│ ├── Opcodes.cpp
│ ├── Opcodes.h
│ ├── PDBImage.cpp
│ ├── PDBImage.h
│ ├── RawImage.cpp
│ ├── RawImage.h
│ ├── RawImageBase.cpp
│ ├── RawImageBase.h
│ ├── SuperSetAOTHomologousImage.cpp
│ ├── SuperSetAOTHomologousImage.h
│ ├── Tables.h
│ ├── VTableSetup.cpp
│ └── VTableSetup.h
└── transform/
├── BasicBlockSpliter.cpp
├── BasicBlockSpliter.h
├── TemporaryMemoryArena.cpp
├── TemporaryMemoryArena.h
├── Transform.cpp
├── Transform.h
├── TransformContext.cpp
├── TransformContext.h
├── TransformContext_CallCommon.cpp
├── TransformContext_Instinct.cpp
├── TransformModule.cpp
└── TransformModule.h
SYMBOL INDEX (597 symbols across 78 files)
FILE: hybridclr/CommonDef.cpp
type hybridclr (line 6) | namespace hybridclr
function LogPanic (line 8) | void LogPanic(const char* errMsg)
FILE: hybridclr/CommonDef.h
function namespace (line 24) | namespace hybridclr
type CStringEqualTo (line 62) | struct CStringEqualTo
function il2cpp (line 70) | inline il2cpp::utils::StringView<char> CStringToStringView(const char* str)
function std (line 75) | inline std::string GetKlassCStringFullName(const Il2CppType* type)
function RaiseNotSupportedException (line 80) | inline void RaiseNotSupportedException(const char* msg)
function RaiseExecutionEngineException (line 86) | inline void RaiseExecutionEngineException(const char* msg)
function RaiseMethodNotFindException (line 91) | inline void RaiseMethodNotFindException(const Il2CppType* type, const ch...
function AppendTypeName (line 103) | inline void AppendTypeName(std::string& s, const Il2CppType* type)
function std (line 108) | inline std::string GetMethodNameWithSignature(const MethodInfo* method)
function RaiseAOTGenericMethodNotInstantiatedException (line 144) | inline void RaiseAOTGenericMethodNotInstantiatedException(const MethodIn...
function RaiseMissingFieldException (line 151) | inline void RaiseMissingFieldException(const Il2CppType* type, const cha...
FILE: hybridclr/Il2CppCompatibleDef.cpp
type hybridclr (line 9) | namespace hybridclr
function Il2CppMethodPointer (line 11) | Il2CppMethodPointer InitAndGetInterpreterDirectlyCallMethodPointerSlow...
FILE: hybridclr/Il2CppCompatibleDef.h
function namespace (line 90) | namespace hybridclr
function IS_CLASS_VALUE_TYPE (line 143) | inline bool IS_CLASS_VALUE_TYPE(const Il2CppClass* klass)
function IS_CCTOR_FINISH_OR_NO_CCTOR (line 148) | inline bool IS_CCTOR_FINISH_OR_NO_CCTOR(const Il2CppClass* klass)
function Il2CppType (line 153) | inline const Il2CppType* GET_METHOD_PARAMETER_TYPE(const ParameterInfo& ...
function GET_CUSTOM_ATTRIBUTE_TYPE_RANGE_START (line 158) | inline uint32_t GET_CUSTOM_ATTRIBUTE_TYPE_RANGE_START(const Il2CppCustom...
function SET_IL2CPPTYPE_VALUE_TYPE (line 163) | inline void SET_IL2CPPTYPE_VALUE_TYPE(Il2CppType& type, bool v)
function COPY_IL2CPPTYPE_VALUE_TYPE_FLAG (line 168) | inline void COPY_IL2CPPTYPE_VALUE_TYPE_FLAG(Il2CppType& dst, const Il2Cp...
function namespace (line 176) | namespace hybridclr
function IS_CLASS_VALUE_TYPE (line 228) | inline bool IS_CLASS_VALUE_TYPE(const Il2CppClass* klass)
function IS_CCTOR_FINISH_OR_NO_CCTOR (line 233) | inline bool IS_CCTOR_FINISH_OR_NO_CCTOR(const Il2CppClass* klass)
function Il2CppType (line 238) | inline const Il2CppType* GET_METHOD_PARAMETER_TYPE(const Il2CppType* param)
function GET_CUSTOM_ATTRIBUTE_TYPE_RANGE_START (line 243) | inline uint32_t GET_CUSTOM_ATTRIBUTE_TYPE_RANGE_START(const Il2CppCustom...
function SET_IL2CPPTYPE_VALUE_TYPE (line 248) | inline void SET_IL2CPPTYPE_VALUE_TYPE(Il2CppType& type, bool v)
function COPY_IL2CPPTYPE_VALUE_TYPE_FLAG (line 253) | inline void COPY_IL2CPPTYPE_VALUE_TYPE_FLAG(Il2CppType& dst, const Il2Cp...
function namespace (line 261) | namespace hybridclr
FILE: hybridclr/Runtime.cpp
type hybridclr (line 17) | namespace hybridclr
FILE: hybridclr/Runtime.h
function namespace (line 5) | namespace hybridclr
FILE: hybridclr/RuntimeApi.cpp
type hybridclr (line 14) | namespace hybridclr
function PreJitMethod0 (line 75) | int32_t PreJitMethod0(const MethodInfo* methodInfo)
FILE: hybridclr/RuntimeApi.h
function namespace (line 6) | namespace hybridclr
FILE: hybridclr/RuntimeConfig.cpp
type hybridclr (line 5) | namespace hybridclr
FILE: hybridclr/RuntimeConfig.h
function namespace (line 5) | namespace hybridclr
FILE: hybridclr/generated/AssemblyManifest.cpp
type hybridclr (line 3) | namespace hybridclr
FILE: hybridclr/interpreter/Engine.cpp
type hybridclr (line 10) | namespace hybridclr
type interpreter (line 12) | namespace interpreter
function InterpFrame (line 29) | InterpFrame* InterpFrameGroup::EnterFrameFromInterpreter(const Metho...
function InterpFrame (line 44) | InterpFrame* InterpFrameGroup::EnterFrameFromNative(const MethodInfo...
function InterpFrame (line 65) | InterpFrame* InterpFrameGroup::LeaveFrame()
function FrameNeedsSkipped (line 83) | static bool FrameNeedsSkipped(const Il2CppStackFrameInfo& frame)
function SetupStackFrameInfo (line 96) | static void SetupStackFrameInfo(const InterpFrame* frame, Il2CppStac...
FILE: hybridclr/interpreter/Engine.h
function namespace (line 19) | namespace hybridclr
FILE: hybridclr/interpreter/InstrinctDef.h
function namespace (line 4) | namespace hybridclr
FILE: hybridclr/interpreter/Instruction.cpp
type hybridclr (line 3) | namespace hybridclr
type interpreter (line 5) | namespace interpreter
FILE: hybridclr/interpreter/Instruction.h
function PrefixFlags (line 10) | enum class PrefixFlags
FILE: hybridclr/interpreter/Interpreter.cpp
type hybridclr (line 18) | namespace hybridclr
type interpreter (line 20) | namespace interpreter
FILE: hybridclr/interpreter/Interpreter.h
function namespace (line 5) | namespace hybridclr
FILE: hybridclr/interpreter/InterpreterDefs.cpp
type hybridclr (line 7) | namespace hybridclr
type interpreter (line 9) | namespace interpreter
FILE: hybridclr/interpreter/InterpreterDefs.h
function namespace (line 5) | namespace hybridclr
FILE: hybridclr/interpreter/InterpreterModule.cpp
type hybridclr (line 24) | namespace hybridclr
type interpreter (line 26) | namespace interpreter
function MethodInfo (line 46) | const MethodInfo* InterpreterModule::GetMethodInfoByReversePInvokeWr...
function MethodInfo (line 51) | const MethodInfo* InterpreterModule::GetMethodInfoByReversePInvokeWr...
function InitReversePInvokeInfo (line 63) | static void InitReversePInvokeInfo()
function Il2CppMethodPointer (line 89) | Il2CppMethodPointer InterpreterModule::GetReversePInvokeWrapper(cons...
function InitMethodBridge (line 140) | static void InitMethodBridge()
function NotSupportManaged2NativeFunctionMethod (line 227) | static void NotSupportManaged2NativeFunctionMethod(Il2CppMethodPoint...
function Managed2NativeCallMethod (line 233) | const Managed2NativeCallMethod GetManaged2NativeMethod(const T* meth...
function Il2CppMethodPointer (line 242) | const Il2CppMethodPointer GetNative2ManagedMethod(const T* method, b...
function Il2CppMethodPointer (line 251) | const Il2CppMethodPointer GetNativeAdjustMethodMethod(const T* metho...
function RaiseMethodNotSupportException (line 259) | static void RaiseMethodNotSupportException(const MethodInfo* method,...
function RaiseMethodNotSupportException (line 265) | static void RaiseMethodNotSupportException(const Il2CppMethodDefinit...
function Il2CppMethodPointer (line 272) | Il2CppMethodPointer InterpreterModule::GetMethodPointer(const Il2Cpp...
function Il2CppMethodPointer (line 278) | Il2CppMethodPointer InterpreterModule::GetMethodPointer(const Method...
function Il2CppMethodPointer (line 284) | Il2CppMethodPointer InterpreterModule::GetAdjustThunkMethodPointer(c...
function Il2CppMethodPointer (line 289) | Il2CppMethodPointer InterpreterModule::GetAdjustThunkMethodPointer(c...
function Managed2NativeCallMethod (line 366) | Managed2NativeCallMethod InterpreterModule::GetManaged2NativeMethodP...
function Managed2NativeCallMethod (line 382) | Managed2NativeCallMethod InterpreterModule::GetManaged2NativeMethodP...
function Managed2NativeFunctionPointerCallMethod (line 390) | Managed2NativeFunctionPointerCallMethod InterpreterModule::GetManage...
function Managed2NativeFunctionPointerCallMethod (line 399) | Managed2NativeFunctionPointerCallMethod InterpreterModule::GetManage...
function RaiseExecutionEngineExceptionMethodIsNotFound (line 409) | static void RaiseExecutionEngineExceptionMethodIsNotFound(const Meth...
function InterpreterInvoke (line 419) | static void InterpreterInvoke(Il2CppMethodPointer methodPointer, con...
function InterpreterDelegateInvoke (line 438) | static void InterpreterDelegateInvoke(Il2CppMethodPointer, const Met...
function InvokerMethod (line 616) | InvokerMethod InterpreterModule::GetMethodInvoker(const Il2CppMethod...
function InvokerMethod (line 624) | InvokerMethod InterpreterModule::GetMethodInvoker(const MethodInfo* ...
function InterpMethodInfo (line 635) | InterpMethodInfo* InterpreterModule::GetInterpMethodInfo(const Metho...
FILE: hybridclr/interpreter/InterpreterModule.h
function namespace (line 10) | namespace hybridclr
FILE: hybridclr/interpreter/InterpreterUtil.cpp
type hybridclr (line 7) | namespace hybridclr
type interpreter (line 9) | namespace interpreter
function TypeDesc (line 11) | TypeDesc GetValueTypeArgDescBySize(uint32_t size)
function TypeDesc (line 20) | TypeDesc GetTypeArgDesc(const Il2CppType* type)
function Il2CppObject (line 94) | Il2CppObject* TranslateNativeValueToBoxValue(const Il2CppType* type,...
FILE: hybridclr/interpreter/InterpreterUtil.h
function namespace (line 11) | namespace hybridclr
FILE: hybridclr/interpreter/Interpreter_Execute.cpp
type hybridclr (line 35) | namespace hybridclr
type interpreter (line 37) | namespace interpreter
function CheckAddOverflow (line 49) | inline bool CheckAddOverflow(int32_t a, int32_t b)
function CheckSubOverflow (line 54) | inline bool CheckSubOverflow(int32_t a, int32_t b)
function CheckAddOverflowUn (line 59) | inline bool CheckAddOverflowUn(uint32_t a, uint32_t b)
function CheckSubOverflowUn (line 64) | inline bool CheckSubOverflowUn(uint32_t a, uint32_t b)
function CheckAddOverflow64 (line 69) | inline bool CheckAddOverflow64(int64_t a, int64_t b)
function CheckSubOverflow64 (line 74) | inline bool CheckSubOverflow64(int64_t a, int64_t b)
function CheckAddOverflow64Un (line 79) | inline bool CheckAddOverflow64Un(uint64_t a, uint64_t b)
function CheckSubOverflow64Un (line 84) | inline bool CheckSubOverflow64Un(uint64_t a, uint64_t b)
function CheckMulOverflow (line 89) | inline bool CheckMulOverflow(int32_t a, int32_t b)
function CheckMulOverflowUn (line 95) | inline bool CheckMulOverflowUn(uint32_t a, uint32_t b)
function CheckMulOverflow64 (line 100) | inline bool CheckMulOverflow64(int64_t a, int64_t b)
function CheckMulOverflow64Un (line 129) | inline bool CheckMulOverflow64Un(uint64_t a, uint64_t b)
function CheckConvertOverflow_i4_i1 (line 134) | inline bool CheckConvertOverflow_i4_i1(int32_t x)
function CheckConvertOverflow_i4_u1 (line 139) | inline bool CheckConvertOverflow_i4_u1(int32_t x)
function CheckConvertOverflow_i4_i2 (line 144) | inline bool CheckConvertOverflow_i4_i2(int32_t x)
function CheckConvertOverflow_i4_u2 (line 149) | inline bool CheckConvertOverflow_i4_u2(int32_t x)
function CheckConvertOverflow_i4_i4 (line 154) | inline bool CheckConvertOverflow_i4_i4(int32_t x)
function CheckConvertOverflow_i4_u4 (line 159) | inline bool CheckConvertOverflow_i4_u4(int32_t x)
function CheckConvertOverflow_i4_i8 (line 164) | inline bool CheckConvertOverflow_i4_i8(int32_t x)
function CheckConvertOverflow_i4_u8 (line 169) | inline bool CheckConvertOverflow_i4_u8(int32_t x)
function CheckConvertOverflow_u4_i1 (line 174) | inline bool CheckConvertOverflow_u4_i1(uint32_t x)
function CheckConvertOverflow_u4_u1 (line 179) | inline bool CheckConvertOverflow_u4_u1(uint32_t x)
function CheckConvertOverflow_u4_i2 (line 184) | inline bool CheckConvertOverflow_u4_i2(uint32_t x)
function CheckConvertOverflow_u4_u2 (line 189) | inline bool CheckConvertOverflow_u4_u2(uint32_t x)
function CheckConvertOverflow_u4_i4 (line 194) | inline bool CheckConvertOverflow_u4_i4(uint32_t x)
function CheckConvertOverflow_u4_u4 (line 199) | inline bool CheckConvertOverflow_u4_u4(uint32_t x)
function CheckConvertOverflow_u4_i8 (line 204) | inline bool CheckConvertOverflow_u4_i8(uint32_t x)
function CheckConvertOverflow_u4_u8 (line 209) | inline bool CheckConvertOverflow_u4_u8(uint32_t x)
function CheckConvertOverflow_i8_i1 (line 214) | inline bool CheckConvertOverflow_i8_i1(int64_t x)
function CheckConvertOverflow_i8_u1 (line 219) | inline bool CheckConvertOverflow_i8_u1(int64_t x)
function CheckConvertOverflow_i8_i2 (line 224) | inline bool CheckConvertOverflow_i8_i2(int64_t x)
function CheckConvertOverflow_i8_u2 (line 229) | inline bool CheckConvertOverflow_i8_u2(int64_t x)
function CheckConvertOverflow_i8_i4 (line 234) | inline bool CheckConvertOverflow_i8_i4(int64_t x)
function CheckConvertOverflow_i8_u4 (line 239) | inline bool CheckConvertOverflow_i8_u4(int64_t x)
function CheckConvertOverflow_i8_i8 (line 244) | inline bool CheckConvertOverflow_i8_i8(int64_t x)
function CheckConvertOverflow_i8_u8 (line 249) | inline bool CheckConvertOverflow_i8_u8(int64_t x)
function CheckConvertOverflow_u8_i1 (line 254) | inline bool CheckConvertOverflow_u8_i1(uint64_t x)
function CheckConvertOverflow_u8_u1 (line 259) | inline bool CheckConvertOverflow_u8_u1(uint64_t x)
function CheckConvertOverflow_u8_i2 (line 264) | inline bool CheckConvertOverflow_u8_i2(uint64_t x)
function CheckConvertOverflow_u8_u2 (line 269) | inline bool CheckConvertOverflow_u8_u2(uint64_t x)
function CheckConvertOverflow_u8_i4 (line 274) | inline bool CheckConvertOverflow_u8_i4(uint64_t x)
function CheckConvertOverflow_u8_u4 (line 279) | inline bool CheckConvertOverflow_u8_u4(uint64_t x)
function CheckConvertOverflow_u8_i8 (line 284) | inline bool CheckConvertOverflow_u8_i8(uint64_t x)
function CheckConvertOverflow_u8_u8 (line 289) | inline bool CheckConvertOverflow_u8_u8(uint64_t x)
function CheckConvertOverflow_f4_i1 (line 294) | inline bool CheckConvertOverflow_f4_i1(float x)
function CheckConvertOverflow_f4_u1 (line 299) | inline bool CheckConvertOverflow_f4_u1(float x)
function CheckConvertOverflow_f4_i2 (line 304) | inline bool CheckConvertOverflow_f4_i2(float x)
function CheckConvertOverflow_f4_u2 (line 309) | inline bool CheckConvertOverflow_f4_u2(float x)
function CheckConvertOverflow_f4_i4 (line 314) | inline bool CheckConvertOverflow_f4_i4(float x)
function CheckConvertOverflow_f4_u4 (line 324) | inline bool CheckConvertOverflow_f4_u4(float x)
function CheckConvertOverflow_f4_i8 (line 334) | inline bool CheckConvertOverflow_f4_i8(float x)
function CheckConvertOverflow_f4_u8 (line 344) | inline bool CheckConvertOverflow_f4_u8(float x)
function CheckConvertOverflow_f8_i1 (line 354) | inline bool CheckConvertOverflow_f8_i1(double x)
function CheckConvertOverflow_f8_u1 (line 359) | inline bool CheckConvertOverflow_f8_u1(double x)
function CheckConvertOverflow_f8_i2 (line 364) | inline bool CheckConvertOverflow_f8_i2(double x)
function CheckConvertOverflow_f8_u2 (line 369) | inline bool CheckConvertOverflow_f8_u2(double x)
function CheckConvertOverflow_f8_i4 (line 374) | inline bool CheckConvertOverflow_f8_i4(double x)
function CheckConvertOverflow_f8_u4 (line 379) | inline bool CheckConvertOverflow_f8_u4(double x)
function CheckConvertOverflow_f8_i8 (line 384) | inline bool CheckConvertOverflow_f8_i8(double x)
function CheckConvertOverflow_f8_u8 (line 394) | inline bool CheckConvertOverflow_f8_u8(double x)
function HiDiv (line 404) | inline int32_t HiDiv(int32_t a, int32_t b)
function HiDiv (line 417) | inline int64_t HiDiv(int64_t a, int64_t b)
function HiDiv (line 430) | inline float HiDiv(float a, float b)
function HiDiv (line 435) | inline double HiDiv(double a, double b)
function HiMulUn (line 440) | inline int32_t HiMulUn(int32_t a, int32_t b)
function HiMulUn (line 445) | inline int64_t HiMulUn(int64_t a, int64_t b)
function HiDivUn (line 450) | inline int32_t HiDivUn(int32_t a, int32_t b)
function HiDivUn (line 459) | inline int64_t HiDivUn(int64_t a, int64_t b)
function HiRem (line 468) | inline float HiRem(float a, float b)
function HiRem (line 473) | inline double HiRem(double a, double b)
function HiRem (line 478) | inline int32_t HiRem(int32_t a, int32_t b)
function HiRem (line 491) | inline int64_t HiRem(int64_t a, int64_t b)
function HiRemUn (line 504) | inline uint32_t HiRemUn(int32_t a, int32_t b)
function HiRemUn (line 513) | inline uint64_t HiRemUn(int64_t a, int64_t b)
function HiShrUn (line 522) | inline uint32_t HiShrUn(int32_t a, int64_t b)
function HiShrUn (line 527) | inline uint32_t HiShrUn(int32_t a, int32_t b)
function HiShrUn (line 532) | inline uint64_t HiShrUn(int64_t a, int32_t b)
function HiShrUn (line 537) | inline uint64_t HiShrUn(int64_t a, int64_t b)
function HiCheckFinite (line 543) | inline void HiCheckFinite(float x)
function HiCheckFinite (line 551) | inline void HiCheckFinite(double x)
function CompareCeq (line 559) | bool CompareCeq(T a, T b) { return a == b; }
function CompareCne (line 560) | bool CompareCne(T a, T b) { return a != b; }
function CompareCgt (line 561) | bool CompareCgt(T a, T b) { return a > b; }
function CompareCge (line 562) | bool CompareCge(T a, T b) { return a >= b; }
function CompareClt (line 563) | bool CompareClt(T a, T b) { return a < b; }
function CompareCle (line 564) | bool CompareCle(T a, T b) { return a <= b; }
function CompareCneUn (line 566) | inline bool CompareCneUn(int32_t a, int32_t b) { return (uint32_t)a ...
function CompareCgtUn (line 567) | inline bool CompareCgtUn(int32_t a, int32_t b) { return (uint32_t)a ...
function CompareCgeUn (line 568) | inline bool CompareCgeUn(int32_t a, int32_t b) { return (uint32_t)a ...
function CompareCltUn (line 569) | inline bool CompareCltUn(int32_t a, int32_t b) { return (uint32_t)a ...
function CompareCleUn (line 570) | inline bool CompareCleUn(int32_t a, int32_t b) { return (uint32_t)a ...
function CompareCneUn (line 572) | inline bool CompareCneUn(int64_t a, int64_t b) { return (uint64_t)a ...
function CompareCgtUn (line 573) | inline bool CompareCgtUn(int64_t a, int64_t b) { return (uint64_t)a ...
function CompareCgeUn (line 574) | inline bool CompareCgeUn(int64_t a, int64_t b) { return (uint64_t)a ...
function CompareCltUn (line 575) | inline bool CompareCltUn(int64_t a, int64_t b) { return (uint64_t)a ...
function CompareCleUn (line 576) | inline bool CompareCleUn(int64_t a, int64_t b) { return (uint64_t)a ...
function CompareCneUn (line 578) | inline bool CompareCneUn(float a, float b) { return a != b; }
function CompareCgtUn (line 579) | inline bool CompareCgtUn(float a, float b) { return a > b; }
function CompareCgeUn (line 580) | inline bool CompareCgeUn(float a, float b) { return a >= b; }
function CompareCltUn (line 581) | inline bool CompareCltUn(float a, float b) { return a < b; }
function CompareCleUn (line 582) | inline bool CompareCleUn(float a, float b) { return a <= b; }
function CompareCneUn (line 584) | inline bool CompareCneUn(double a, double b) { return a != b; }
function CompareCgtUn (line 585) | inline bool CompareCgtUn(double a, double b) { return a > b; }
function CompareCgeUn (line 586) | inline bool CompareCgeUn(double a, double b) { return a >= b; }
function CompareCltUn (line 587) | inline bool CompareCltUn(double a, double b) { return a < b; }
function CompareCleUn (line 588) | inline bool CompareCleUn(double a, double b) { return a <= b; }
function INIT_CLASS (line 594) | inline void INIT_CLASS(Il2CppClass* klass)
function CHECK_NOT_NULL_THROW (line 599) | inline void CHECK_NOT_NULL_THROW(const void* ptr)
function CHECK_NOT_NULL_AND_ARRAY_BOUNDARY (line 607) | inline void CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(Il2CppArray* arr, int6...
function CHECK_NOT_NULL_AND_ARRAY_BOUNDARY (line 616) | inline void CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(Il2CppArray* arr, int3...
function CHECK_NOT_NULL_AND_ARRAY_BOUNDARY2 (line 625) | inline void CHECK_NOT_NULL_AND_ARRAY_BOUNDARY2(Il2CppArray* arr, int...
function CHECK_TYPE_MATCH_ELSE_THROW (line 634) | inline void CHECK_TYPE_MATCH_ELSE_THROW(Il2CppClass* klass1, Il2CppC...
function CheckArrayElementTypeMatch (line 642) | inline void CheckArrayElementTypeMatch(Il2CppClass* arrKlass, Il2Cpp...
function CheckArrayElementTypeCompatible (line 650) | inline void CheckArrayElementTypeCompatible(Il2CppArray* arr, Il2Cpp...
function MethodInfo (line 658) | inline MethodInfo* GET_OBJECT_VIRTUAL_METHOD(Il2CppObject* obj, cons...
function CopyObjectData2StackDataByType (line 700) | inline void CopyObjectData2StackDataByType(void* dst, void* src, Il2...
function HiUnboxAny2StackObject (line 752) | inline void HiUnboxAny2StackObject(Il2CppObject* obj, Il2CppClass* k...
function HiCastClass (line 769) | inline void HiCastClass(Il2CppObject* obj, Il2CppClass* klass)
function Il2CppTypedRef (line 777) | inline Il2CppTypedRef MAKE_TYPEDREFERENCE(Il2CppClass* klazz, void* ...
function SetArrayElementWithSize (line 798) | inline void SetArrayElementWithSize(Il2CppArray* array, uint32_t ele...
function Il2CppArray (line 804) | inline Il2CppArray* NewMdArray(Il2CppClass* fullArrKlass, StackObjec...
function GetMdArrayElementExpandToStack (line 926) | void GetMdArrayElementExpandToStack(Il2CppArray* arr, StackObject* i...
function GetMdArrayElementCopyToStack (line 932) | void GetMdArrayElementCopyToStack(Il2CppArray* arr, StackObject* ind...
function GetMdArrayElementBySize (line 938) | inline void GetMdArrayElementBySize(Il2CppArray* arr, StackObject* i...
function SetMdArrayElement (line 943) | inline void SetMdArrayElement(Il2CppArray* arr, StackObject* indexs,...
function SetMdArrayElementWriteBarrier (line 948) | inline void SetMdArrayElementWriteBarrier(Il2CppArray* arr, StackObj...
function InitNullableValueType (line 961) | inline void InitNullableValueType(void* nullableValueTypeObj, void* ...
function NewNullableValueType (line 976) | inline void NewNullableValueType(void* nullableValueTypeObj, void* d...
function IsNullableHasValue (line 984) | inline bool IsNullableHasValue(void* nullableValueObj, Il2CppClass* ...
function GetNullableValueOrDefault2StackDataByType (line 990) | inline void GetNullableValueOrDefault2StackDataByType(void* dst, voi...
function GetNullableValueOrDefault2StackDataByType (line 1085) | inline void GetNullableValueOrDefault2StackDataByType(void* dst, voi...
function HiInterlockedCompareExchange (line 1193) | inline int32_t HiInterlockedCompareExchange(int32_t* location, int32...
function HiInterlockedCompareExchange (line 1198) | inline int64_t HiInterlockedCompareExchange(int64_t* location, int64...
function HiInterlockedExchange (line 1208) | inline int32_t HiInterlockedExchange(int32_t* location, int32_t newV...
function HiInterlockedExchange (line 1213) | inline int64_t HiInterlockedExchange(int64_t* location, int64_t newV...
function UnsafeEnumCast (line 1226) | inline int32_t UnsafeEnumCast(void* src, uint16_t type)
function GetEnumLongHashCode (line 1243) | inline int32_t GetEnumLongHashCode(void* data)
function ConstructorDelegate2 (line 1249) | inline void ConstructorDelegate2(MethodInfo* ctor, Il2CppDelegate* d...
function InvokeSingleDelegate (line 1335) | inline void InvokeSingleDelegate(uint16_t invokeParamCount, const Me...
function Il2CppObject (line 1388) | inline Il2CppObject* InvokeDelegateBeginInvoke(const MethodInfo* met...
function InvokeDelegateEndInvokeVoid (line 1419) | inline void InvokeDelegateEndInvokeVoid(MethodInfo* method, Il2CppAs...
function InvokeDelegateEndInvokeRet (line 1424) | inline void InvokeDelegateEndInvokeRet(MethodInfo* method, Il2CppAsy...
function PushExceptionFlowInfo (line 1437) | inline void PushExceptionFlowInfo(InterpFrame* frame, MachineState& ...
function PopPrevExceptionFlowInfo (line 1451) | inline void PopPrevExceptionFlowInfo(InterpFrame* frame, ExceptionFl...
function PopCurExceptionFlowInfo (line 1464) | inline void PopCurExceptionFlowInfo(InterpFrame* frame)
FILE: hybridclr/interpreter/MemoryUtil.h
function namespace (line 4) | namespace hybridclr
FILE: hybridclr/interpreter/MethodBridge.cpp
type hybridclr (line 14) | namespace hybridclr
type interpreter (line 16) | namespace interpreter
function ConvertInvokeArgs (line 19) | void ConvertInvokeArgs(StackObject* resultArgs, const MethodInfo* me...
function AppendString (line 43) | static void AppendString(char* sigBuf, size_t bufSize, size_t& pos, ...
function AppendSignatureObjOrRefOrPointer (line 57) | inline void AppendSignatureObjOrRefOrPointer(char* sigBuf, size_t bu...
function AppendSignatureInterpreterValueType (line 62) | inline void AppendSignatureInterpreterValueType(char* sigBuf, size_t...
function IsSystemOrUnityAssembly (line 69) | static bool IsSystemOrUnityAssembly(const Il2CppImage* image)
function BuildValueTypeFullName (line 87) | static void BuildValueTypeFullName(const Il2CppClass* klass, char* s...
function BuildGenericValueTypeFullName (line 109) | static void BuildGenericValueTypeFullName(const Il2CppType* type, ch...
function AppendSignature (line 127) | static void AppendSignature(const Il2CppType* type, char* sigBuf, si...
function ComputeSignature (line 216) | bool ComputeSignature(const Il2CppType* ret, const il2cpp::utils::dy...
function ComputeSignature (line 234) | bool ComputeSignature(const Il2CppMethodDefinition* method, bool cal...
function ContainsGenericParameters (line 261) | inline bool ContainsGenericParameters(const MethodInfo* method)
function ComputeSignature (line 276) | bool ComputeSignature(const MethodInfo* method, bool call, char* sig...
FILE: hybridclr/interpreter/MethodBridge.h
function namespace (line 6) | namespace hybridclr
FILE: hybridclr/metadata/AOTHomologousImage.cpp
type hybridclr (line 11) | namespace hybridclr
type metadata (line 13) | namespace metadata
function AOTHomologousImage (line 18) | AOTHomologousImage* AOTHomologousImage::FindImageByAssembly(const Il...
function AOTHomologousImage (line 30) | AOTHomologousImage* AOTHomologousImage::FindImageByAssemblyLocked(co...
function LoadImageErrorCode (line 42) | LoadImageErrorCode AOTHomologousImage::Load(const byte* imageData, s...
function Il2CppType (line 74) | const Il2CppType* AOTHomologousImage::GetModuleIl2CppType(uint32_t m...
FILE: hybridclr/metadata/AOTHomologousImage.h
function namespace (line 4) | namespace hybridclr
FILE: hybridclr/metadata/Assembly.cpp
type hybridclr (line 23) | namespace hybridclr
type metadata (line 25) | namespace metadata
function Il2CppAssembly (line 49) | static Il2CppAssembly* CreatePlaceHolderAssembly(const char* assembl...
function Il2CppAssembly (line 61) | static Il2CppAssembly* FindPlaceHolderAssembly(const char* assemblyN...
function Il2CppAssembly (line 73) | static Il2CppAssembly* FindPlaceHolderAssembly(const char* assemblyN...
function RunModuleInitializer (line 90) | static void RunModuleInitializer(Il2CppImage* image)
function Il2CppAssembly (line 100) | Il2CppAssembly* Assembly::LoadFromBytes(const void* assemblyData, ui...
function Il2CppAssembly (line 107) | Il2CppAssembly* Assembly::Create(const byte* assemblyData, uint64_t ...
function LoadImageErrorCode (line 180) | LoadImageErrorCode Assembly::LoadMetadataForAOTAssembly(const void* ...
FILE: hybridclr/metadata/Assembly.h
function namespace (line 8) | namespace hybridclr
FILE: hybridclr/metadata/BlobReader.h
function namespace (line 6) | namespace hybridclr
FILE: hybridclr/metadata/ClassFieldLayoutCalculator.cpp
type hybridclr (line 9) | namespace hybridclr
type metadata (line 11) | namespace metadata
function SizeAndAlignment (line 27) | SizeAndAlignment ClassFieldLayoutCalculator::GetTypeSizeAndAlignment...
function AlignTo (line 165) | static int32_t AlignTo(int32_t size, int32_t alignment)
function IsRawNormalStaticField (line 286) | inline bool IsRawNormalStaticField(const Il2CppType* type, int32_t o...
function IsRawThreadStaticField (line 300) | inline bool IsRawThreadStaticField(const Il2CppType* type, int32_t o...
FILE: hybridclr/metadata/ClassFieldLayoutCalculator.h
function namespace (line 7) | namespace hybridclr
FILE: hybridclr/metadata/Coff.h
function namespace (line 5) | namespace hybridclr
FILE: hybridclr/metadata/ConsistentAOTHomologousImage.cpp
type hybridclr (line 11) | namespace hybridclr
type metadata (line 13) | namespace metadata
function MethodBody (line 124) | MethodBody* ConsistentAOTHomologousImage::GetMethodBody(uint32_t token)
function Il2CppType (line 134) | const Il2CppType* ConsistentAOTHomologousImage::GetIl2CppTypeFromRaw...
function Il2CppGenericContainer (line 140) | Il2CppGenericContainer* ConsistentAOTHomologousImage::GetGenericCont...
function Il2CppGenericContainer (line 145) | Il2CppGenericContainer* ConsistentAOTHomologousImage::GetGenericCont...
function Il2CppMethodDefinition (line 151) | const Il2CppMethodDefinition* ConsistentAOTHomologousImage::GetMetho...
FILE: hybridclr/metadata/ConsistentAOTHomologousImage.h
function namespace (line 5) | namespace hybridclr
FILE: hybridclr/metadata/CustomAttributeDataWriter.h
function namespace (line 9) | namespace hybridclr
FILE: hybridclr/metadata/Image.cpp
type hybridclr (line 33) | namespace hybridclr
type metadata (line 35) | namespace metadata
function LoadImageErrorCode (line 37) | LoadImageErrorCode Image::InitRawImage(const void* imageData, size_t...
function Il2CppType (line 145) | const Il2CppType* Image::ReadArrayType(BlobReader& reader, const Il2...
function Il2CppGenericClass (line 184) | const Il2CppGenericClass* Image::ReadGenericClass(BlobReader& reader...
function Il2CppType (line 202) | const Il2CppType* Image::ReadType(BlobReader& reader, const Il2CppGe...
function Il2CppType (line 397) | const Il2CppType* Image::ReadTypeFromResolutionScope(uint32_t scope,...
function Il2CppType (line 455) | const Il2CppType* Image::ReadTypeFromTypeDef(uint32_t rowIndex)
function Il2CppType (line 460) | const Il2CppType* Image::ReadTypeFromTypeRef(uint32_t rowIndex)
function Il2CppType (line 466) | const Il2CppType* Image::ReadTypeFromTypeSpec(const Il2CppGenericCon...
function Il2CppType (line 473) | const Il2CppType* Image::ReadTypeFromMemberRefParent(const Il2CppGen...
function Il2CppType (line 481) | const Il2CppType* Image::ReadTypeFromToken(const Il2CppGenericContai...
function Il2CppGenericInst (line 638) | const Il2CppGenericInst* Image::ReadMethodSpecInstantiation(uint32_t...
function Il2CppClass (line 712) | Il2CppClass* Image::FindNetStandardExportedType(const char* namespac...
function Il2CppType (line 730) | const Il2CppType* Image::GetIl2CppType(uint32_t assemblyRefIndex, ui...
function MethodInfo (line 867) | const MethodInfo* Image::FindImplMethod(Il2CppClass* klass, const Me...
function Il2CppString (line 874) | Il2CppString* Image::GetIl2CppUserStringFromRawIndex(StringIndex index)
function Il2CppClass (line 894) | Il2CppClass* Image::GetClassFromToken(Token2RuntimeHandleMap& tokenC...
function FieldInfo (line 915) | const FieldInfo* Image::GetFieldInfoFromFieldRef(const Il2CppType& t...
function MethodInfo (line 932) | const MethodInfo* Image::ResolveMethodInfo(const Il2CppType* type, c...
function FieldInfo (line 1044) | const FieldInfo* Image::GetFieldInfoFromToken(Token2RuntimeHandleMap...
function MethodInfo (line 1068) | const MethodInfo* Image::ReadMethodInfoFromToken(const Il2CppGeneric...
function MethodInfo (line 1127) | const MethodInfo* Image::GetMethodInfoFromToken(Token2RuntimeHandleM...
function MethodInfo (line 1146) | const MethodInfo* Image::GetMethodInfo(const Il2CppType* containerTy...
FILE: hybridclr/metadata/Image.h
type std (line 25) | typedef std::tuple<uint32_t, const
type TokenGenericContextTypeHash (line 27) | struct TokenGenericContextTypeHash {
type TokenGenericContextTypeEqual (line 33) | struct TokenGenericContextTypeEqual
type Il2CppHashMap (line 40) | typedef Il2CppHashMap<std::tuple<uint32_t, const
function class (line 42) | class Image
FILE: hybridclr/metadata/InterpreterImage.cpp
type hybridclr (line 37) | namespace hybridclr
type metadata (line 39) | namespace metadata
function GetImageKindByDllLength (line 46) | static int32_t GetImageKindByDllLength(uint32_t dllLength)
function DefaultValueDataIndex (line 528) | DefaultValueDataIndex InterpreterImage::ConvertConstValue(CustomAttr...
function CustomAttributesCache (line 1244) | CustomAttributesCache* InterpreterImage::GenerateCustomAttributesCac...
function CustomAttributesCache (line 1306) | CustomAttributesCache* InterpreterImage::GenerateCustomAttributesCac...
type EnclosingClassInfo (line 1727) | struct EnclosingClassInfo
function Il2CppClass (line 1861) | Il2CppClass* InterpreterImage::GetTypeInfoFromTypeDefinitionRawIndex...
function Il2CppType (line 1882) | const Il2CppType* InterpreterImage::GetInterfaceFromGlobalOffset(Typ...
function Il2CppType (line 1900) | const Il2CppType* InterpreterImage::GetInterfaceFromIndex(const Il2C...
function Il2CppType (line 1905) | const Il2CppType* InterpreterImage::GetInterfaceFromOffset(const Il2...
function Il2CppType (line 1912) | const Il2CppType* InterpreterImage::GetInterfaceFromOffset(const Il2...
function Il2CppInterfaceOffsetInfo (line 1918) | Il2CppInterfaceOffsetInfo InterpreterImage::GetInterfaceOffsetInfo(c...
function Il2CppClass (line 1927) | Il2CppClass* InterpreterImage::GetNestedTypeFromOffset(const Il2CppT...
function Il2CppClass (line 1936) | Il2CppClass* InterpreterImage::GetNestedTypeFromOffset(const Il2CppC...
function Il2CppTypeDefinition (line 1941) | Il2CppTypeDefinition* InterpreterImage::GetNestedTypes(Il2CppTypeDef...
function Il2CppAssembly (line 1971) | const Il2CppAssembly* InterpreterImage::GetReferencedAssembly(int32_...
function MethodInfo (line 2204) | const MethodInfo* InterpreterImage::GetMethodInfoFromMethodDefinitio...
function MethodInfo (line 2216) | const MethodInfo* InterpreterImage::GetMethodInfoFromMethodDefinitio...
function Il2CppMethodDefinition (line 2224) | const Il2CppMethodDefinition* InterpreterImage::GetMethodDefinitionF...
function MethodInfo (line 2235) | const MethodInfo* InterpreterImage::GetMethodInfoFromVTableSlot(cons...
function Il2CppMethodPointer (line 2274) | Il2CppMethodPointer InterpreterImage::GetAdjustorThunk(uint32_t token)
function Il2CppMethodPointer (line 2282) | Il2CppMethodPointer InterpreterImage::GetMethodPointer(uint32_t token)
function InvokerMethod (line 2290) | InvokerMethod InterpreterImage::GetMethodInvoker(uint32_t token)
function Il2CppString (line 2299) | Il2CppString* InterpreterImage::ReadSerString(BlobReader& reader)
function Il2CppReflectionType (line 2351) | Il2CppReflectionType* InterpreterImage::ReadSystemType(BlobReader& r...
function Il2CppObject (line 2369) | Il2CppObject* InterpreterImage::ReadBoxedValue(BlobReader& reader)
function Il2CppType (line 2607) | const Il2CppType* InterpreterImage::GetModuleIl2CppType(uint32_t mod...
FILE: hybridclr/metadata/InterpreterImage.h
function namespace (line 13) | namespace hybridclr
FILE: hybridclr/metadata/MetadataDef.h
type class (line 13) | enum class
type class (line 21) | enum class
type class (line 29) | enum class
type CorILMethodFatHeader (line 37) | struct CorILMethodFatHeader
type CorILEHSmall (line 46) | struct CorILEHSmall
type CorILEHFat (line 59) | struct CorILEHFat
type CorILEHSectionHeaderSmall (line 71) | struct CorILEHSectionHeaderSmall
type CorILEHSectionHeaderFat (line 80) | struct CorILEHSectionHeaderFat
function class (line 93) | class TagBits
function TableType (line 169) | inline TableType DecodeTokenTableType(uint32_t index)
function DecodeTokenRowIndex (line 174) | inline uint32_t DecodeTokenRowIndex(uint32_t index)
type SectionHeader (line 179) | struct SectionHeader
type ColumnOffsetSize (line 186) | struct ColumnOffsetSize
type class (line 192) | enum class
function SigType (line 209) | inline SigType DecodeSigType(uint8_t rawSigType)
function DecodeSigFlags (line 214) | inline uint8_t DecodeSigFlags(uint8_t rawSigType)
function EncodeToken (line 219) | inline uint32_t EncodeToken(TableType type, uint32_t index)
function DecodeToken (line 224) | inline void DecodeToken(uint32_t token, TableType& type, uint32_t& rowIn...
type class (line 230) | enum class
function Il2CppTypeEnum (line 239) | inline Il2CppTypeEnum GetElementType(Il2CppTypeEnum encodeType)
function TableType (line 244) | inline TableType DecodeTypeDefOrRefOrSpecCodedIndexTableType(uint32_t en...
function DecodeTypeDefOrRefOrSpecCodedIndexRowIndex (line 255) | inline uint32_t DecodeTypeDefOrRefOrSpecCodedIndexRowIndex(uint32_t enco...
function EncodeTypeDefOrRefOrSpecCodedIndex (line 260) | inline uint32_t EncodeTypeDefOrRefOrSpecCodedIndex(TableType type, uint3...
function ConvertTypeDefOrRefOrSpecToken2CodedIndex (line 273) | inline uint32_t ConvertTypeDefOrRefOrSpecToken2CodedIndex(uint32_t token)
function DecodeResolutionScopeCodedIndex (line 290) | inline void DecodeResolutionScopeCodedIndex(uint32_t encodedToken, Table...
function TableType (line 302) | inline TableType DecodeTypeOrMethodDefCodedIndexTableType(uint32_t encod...
function DecodeTypeOrMethodDefCodedIndexRowIndex (line 313) | inline uint32_t DecodeTypeOrMethodDefCodedIndexRowIndex(uint32_t encodeI...
function TableType (line 318) | inline TableType DecodeMethodDefOrRefCodedIndexTableType(uint32_t token)
function DecodeMethodDefOrRefCodedIndexRowIndex (line 328) | inline uint32_t DecodeMethodDefOrRefCodedIndexRowIndex(uint32_t token)
function EncodeMethodDefOrRefCodedIndex (line 333) | inline uint32_t EncodeMethodDefOrRefCodedIndex(TableType type, uint32_t ...
function ConvertMethodDefOrRefToken2CodedIndex (line 339) | inline uint32_t ConvertMethodDefOrRefToken2CodedIndex(uint32_t token)
function TableType (line 347) | inline TableType DecodeMemberRefParentType(uint32_t token)
function DecodeMemberRefParentRowIndex (line 360) | inline uint32_t DecodeMemberRefParentRowIndex(uint32_t token)
function TableType (line 365) | inline TableType DecodeFieldDefOrDefType(uint32_t encodeIndex)
function DecodeFieldDefOrDefTypeRowIndex (line 375) | inline uint32_t DecodeFieldDefOrDefTypeRowIndex(uint32_t encodeIndex)
function EncodeFieldDefOrRefCodedIndex (line 380) | inline uint32_t EncodeFieldDefOrRefCodedIndex(TableType type, uint32_t r...
function ConvertFieldDefOrRefToken2CodedIndex (line 386) | inline uint32_t ConvertFieldDefOrRefToken2CodedIndex(uint32_t token)
function TableType (line 394) | inline TableType DecodeMemberRefParentCodedIndexTableType(uint32_t encod...
function DecodeMemberRefParentCodedIndexRowIndex (line 407) | inline uint32_t DecodeMemberRefParentCodedIndexRowIndex(uint32_t encodeI...
function TableType (line 412) | inline TableType DecodeHasCustomAttributeCodedIndexTableType(uint32_t co...
function DecodeHasCustomAttributeCodedIndexRowIndex (line 442) | inline uint32_t DecodeHasCustomAttributeCodedIndexRowIndex(uint32_t code...
function TableType (line 447) | inline TableType DecodeCustomAttributeTypeCodedIndexTableType(uint32_t c...
function DecodeCustomAttributeTypeCodedIndexRowIndex (line 457) | inline uint32_t DecodeCustomAttributeTypeCodedIndexRowIndex(uint32_t cod...
function ConvertMemberForwardedToken2Token (line 462) | inline uint32_t ConvertMemberForwardedToken2Token(uint32_t memberForward...
function UserStringEncoding (line 469) | enum class UserStringEncoding
FILE: hybridclr/metadata/MetadataModule.cpp
type hybridclr (line 27) | namespace hybridclr
type metadata (line 30) | namespace metadata
function Image (line 42) | Image* MetadataModule::GetUnderlyingInterpreterImage(const MethodInf...
FILE: hybridclr/metadata/MetadataModule.h
function namespace (line 7) | namespace hybridclr
FILE: hybridclr/metadata/MetadataPool.cpp
type hybridclr (line 10) | namespace hybridclr
type metadata (line 12) | namespace metadata
class Il2CppArrayTypeHash (line 24) | class Il2CppArrayTypeHash
class Il2CppTypeFullHash (line 35) | class Il2CppTypeFullHash
method Hash (line 43) | static size_t Hash(const Il2CppType* t1)
class Il2CppArrayTypeEqualityComparer (line 105) | class Il2CppArrayTypeEqualityComparer
class Il2CppTypeFullEqualityComparer (line 116) | class Il2CppTypeFullEqualityComparer
method AreEqual (line 124) | static bool AreEqual(const Il2CppType* t1, const Il2CppType* t2)
class Il2CppArrayTypeHash2 (line 187) | class Il2CppArrayTypeHash2
method Hash (line 195) | static size_t Hash(const Il2CppArrayType* t1)
class Il2CppArrayTypeEqualityComparer2 (line 203) | class Il2CppArrayTypeEqualityComparer2
method AreEqual (line 211) | static bool AreEqual(const Il2CppArrayType* a1, const Il2CppArrayT...
function InitMetadataPool (line 229) | static void InitMetadataPool()
function Il2CppType (line 251) | static const Il2CppType* TryGetPrimitiveType(const Il2CppType& origi...
function NeedCache (line 312) | static bool NeedCache(const Il2CppType& originalType)
function Il2CppType (line 348) | static Il2CppType* DeepCloneIl2CppType(const Il2CppType& type)
function Il2CppType (line 356) | const Il2CppType* MetadataPool::GetPooledIl2CppType(const Il2CppType...
function Il2CppType (line 381) | Il2CppType* MetadataPool::ShallowCloneIl2CppType(const Il2CppType* t...
function Il2CppArrayType (line 389) | const Il2CppArrayType* MetadataPool::GetPooledIl2CppArrayType(const ...
FILE: hybridclr/metadata/MetadataPool.h
function namespace (line 8) | namespace hybridclr
FILE: hybridclr/metadata/MetadataReader.h
function namespace (line 5) | namespace hybridclr
FILE: hybridclr/metadata/MetadataUtil.cpp
type hybridclr (line 14) | namespace hybridclr
type metadata (line 16) | namespace metadata
function GetNotZeroBitCount (line 35) | uint32_t GetNotZeroBitCount(uint64_t x)
function GetTypeValueSize (line 48) | int32_t GetTypeValueSize(const Il2CppType* type)
function IsValueType (line 119) | bool IsValueType(const Il2CppType* type)
function IsTypeSameByTypeIndex (line 144) | bool IsTypeSameByTypeIndex(TypeIndex t1, TypeIndex t2)
function IsTypeEqual (line 153) | bool IsTypeEqual(const Il2CppType* t1, const Il2CppType* t2)
function IsTypeGenericCompatible (line 158) | bool IsTypeGenericCompatible(const Il2CppType* typeTo, const Il2CppT...
function Il2CppType (line 201) | const Il2CppType* TryInflateIfNeed(const Il2CppType* selfType, const...
function Il2CppType (line 207) | const Il2CppType* TryInflateIfNeed(const Il2CppType* containerType, ...
function IsSameOverrideType (line 220) | bool IsSameOverrideType(const Il2CppType* t1, const Il2CppType* t2)
function IsGenericMethodSameGenericParamCount (line 293) | static bool IsGenericMethodSameGenericParamCount(const Il2CppMethodD...
function IsOverrideMethodIgnoreName (line 314) | bool IsOverrideMethodIgnoreName(const Il2CppType* type1, const Il2Cp...
function IsOverrideMethod (line 352) | bool IsOverrideMethod(const Il2CppType* type1, const Il2CppMethodDef...
function IsMatchSigType (line 363) | bool IsMatchSigType(const Il2CppType* dstType, const Il2CppType* sig...
function IsMatchSigType (line 446) | bool IsMatchSigType(const Il2CppType* dstType, const Il2CppType* sig...
function IsMatchMethodSig (line 532) | bool IsMatchMethodSig(const Il2CppMethodDefinition* methodDef, const...
function IsMatchMethodSig (line 577) | bool IsMatchMethodSig(const MethodInfo* methodDef, const MethodRefSi...
function IsMatchMethodSig (line 616) | bool IsMatchMethodSig(const MethodInfo* methodDef, const MethodRefSi...
function Il2CppMethodDefinition (line 656) | const Il2CppMethodDefinition* ResolveMethodDefinition(const Il2CppTy...
function MethodInfo (line 674) | const MethodInfo* GetMethodInfoFromMethodDef(const Il2CppType* type,...
function ResolveField (line 700) | bool ResolveField(const Il2CppType* type, const char* resolveFieldNa...
function Il2CppGenericContainer (line 719) | const Il2CppGenericContainer* GetGenericContainerFromIl2CppType(cons...
function Il2CppGenericInst (line 739) | const Il2CppGenericInst* TryInflateGenericInst(const Il2CppGenericIn...
function HasNotInstantiatedGenericType (line 750) | bool HasNotInstantiatedGenericType(const Il2CppGenericInst* inst)
function HasNotInstantiatedGenericType (line 766) | bool HasNotInstantiatedGenericType(const Il2CppType* type)
function Il2CppType (line 799) | const Il2CppType* GetIl2CppTypeFromTypeDefinition(const Il2CppTypeDe...
FILE: hybridclr/metadata/MetadataUtil.h
function namespace (line 13) | namespace hybridclr
FILE: hybridclr/metadata/MethodBodyCache.cpp
type hybridclr (line 13) | namespace hybridclr
type metadata (line 15) | namespace metadata
type ImageTokenPair (line 17) | struct ImageTokenPair
type ImageTokenPairHash (line 23) | struct ImageTokenPairHash
type ImageTokenPairEqualTo (line 31) | struct ImageTokenPairEqualTo
type InlineMode (line 39) | enum class InlineMode : uint8_t
type MethodBodyCacheInfo (line 46) | struct MethodBodyCacheInfo
function MethodBodyCacheInfo (line 60) | static MethodBodyCacheInfo* GetOrInitMethodBodyCache(hybridclr::meta...
function MethodBody (line 75) | MethodBody* MethodBodyCache::GetMethodBody(hybridclr::metadata::Imag...
function ShrinkMethodBodyCache (line 83) | static void ShrinkMethodBodyCache(int32_t shrinkMethodBodyCacheInter...
function IsILCodeInlineable (line 128) | static bool IsILCodeInlineable(const byte* ilcodeStart, uint32_t cod...
function ComputeInlinable (line 157) | static bool ComputeInlinable(metadata::Image* image, uint32_t token)
FILE: hybridclr/metadata/MethodBodyCache.h
function namespace (line 5) | namespace hybridclr
FILE: hybridclr/metadata/Opcodes.cpp
type hybridclr (line 5) | namespace hybridclr
type metadata (line 7) | namespace metadata
function OpCodeInfo (line 310) | const OpCodeInfo* DecodeOpCodeInfo(const byte*& ip, const byte* end)
function GetOpCodeSize (line 337) | uint32_t GetOpCodeSize(const byte*& ip, const OpCodeInfo* opCodeInfo)
FILE: hybridclr/metadata/Opcodes.h
type class (line 9) | enum class
type class (line 309) | enum class
type class (line 611) | enum class
function ArgType (line 623) | enum class ArgType
FILE: hybridclr/metadata/PDBImage.cpp
type hybridclr (line 11) | namespace hybridclr
type metadata (line 13) | namespace metadata
function LoadImageErrorCode (line 17) | LoadImageErrorCode PDBImage::LoadCLIHeader(uint32_t& entryPointToken...
FILE: hybridclr/metadata/PDBImage.h
function namespace (line 5) | namespace hybridclr
FILE: hybridclr/metadata/RawImage.cpp
type hybridclr (line 10) | namespace hybridclr
type metadata (line 12) | namespace metadata
function LoadImageErrorCode (line 20) | LoadImageErrorCode RawImage::LoadCLIHeader(uint32_t& entryPointToken...
FILE: hybridclr/metadata/RawImage.h
function namespace (line 5) | namespace hybridclr
FILE: hybridclr/metadata/RawImageBase.cpp
type hybridclr (line 3) | namespace hybridclr
type metadata (line 5) | namespace metadata
function LoadImageErrorCode (line 7) | LoadImageErrorCode RawImageBase::Load(const void* rawImageData, size...
function LoadImageErrorCode (line 52) | LoadImageErrorCode RawImageBase::LoadStreamHeaders(uint32_t metadata...
function LoadImageErrorCode (line 134) | LoadImageErrorCode RawImageBase::ValidateStreams() const
function LoadImageErrorCode (line 200) | LoadImageErrorCode RawImageBase::LoadTables()
FILE: hybridclr/metadata/RawImageBase.h
function namespace (line 11) | namespace hybridclr
function virtual (line 40) | virtual ~RawImageBase()
function virtual (line 49) | virtual LoadImageErrorCode PostLoadStreams() { return LoadImageErrorCode...
function virtual (line 50) | virtual LoadImageErrorCode PostLoadTables() { return LoadImageErrorCode:...
function virtual (line 52) | virtual Il2CppString* GetUserStringBlogByIndex(uint32_t index) const
function byte (line 68) | const byte* GetBlobFromRawIndex(StringIndex index) const
function BlobReader (line 80) | static BlobReader DecodeBlob(const byte* buf)
function BlobReader (line 87) | BlobReader GetBlobReaderByRawIndex(uint32_t rawIndex) const
function GetImageOffsetOfBlob (line 94) | uint32_t GetImageOffsetOfBlob(Il2CppTypeEnum type, uint32_t index) const
function byte (line 106) | const byte* GetDataPtrByImageOffset(uint32_t imageOffset) const
function Table (line 119) | const Table& GetTable(TableType type) const
function GetTableRowNum (line 124) | uint32_t GetTableRowNum(TableType tableIndex) const
function TranslateRVAToImageOffset (line 129) | bool TranslateRVAToImageOffset(uint32_t rvaOffset, uint32_t& imageOffset...
FILE: hybridclr/metadata/SuperSetAOTHomologousImage.cpp
type hybridclr (line 12) | namespace hybridclr
type metadata (line 14) | namespace metadata
function Il2CppMethodDefinition (line 19) | const Il2CppMethodDefinition* FindMatchMethod(const Il2CppTypeDefini...
function Il2CppFieldDefinition (line 41) | const Il2CppFieldDefinition* FindMatchField(const Il2CppTypeDefiniti...
function MethodBody (line 288) | MethodBody* SuperSetAOTHomologousImage::GetMethodBody(uint32_t token)
function Il2CppType (line 303) | const Il2CppType* SuperSetAOTHomologousImage::GetIl2CppTypeFromRawTy...
function Il2CppGenericContainer (line 309) | Il2CppGenericContainer* SuperSetAOTHomologousImage::GetGenericContai...
function Il2CppGenericContainer (line 314) | Il2CppGenericContainer* SuperSetAOTHomologousImage::GetGenericContai...
function Il2CppMethodDefinition (line 330) | const Il2CppMethodDefinition* SuperSetAOTHomologousImage::GetMethodD...
function Il2CppType (line 351) | const Il2CppType* SuperSetAOTHomologousImage::ReadTypeFromResolution...
FILE: hybridclr/metadata/SuperSetAOTHomologousImage.h
function namespace (line 7) | namespace hybridclr
FILE: hybridclr/metadata/Tables.h
function namespace (line 4) | namespace hybridclr
FILE: hybridclr/metadata/VTableSetup.cpp
type hybridclr (line 10) | namespace hybridclr
type metadata (line 12) | namespace metadata
function Il2CppType (line 14) | const Il2CppType* TryInflateIfNeed(const Il2CppType* containerType, ...
function VTableSetUp (line 26) | VTableSetUp* VTableSetUp::InflateVts(Il2CppType2TypeDeclaringTreeMap...
function VTableSetUp (line 63) | VTableSetUp* VTableSetUp::BuildByType(Il2CppType2TypeDeclaringTreeMa...
function IsOverrideMethod (line 121) | inline bool IsOverrideMethod(const GenericClassMethod& m1, const Gen...
function FindLastSameMethod (line 127) | uint16_t FindLastSameMethod(std::vector<GenericClassMethod>& methods...
function containeTdt (line 145) | bool containeTdt(const std::vector<VTableSetUp*>& trees, VTableSetUp...
function FindType (line 158) | bool FindType(const std::vector<RawInterfaceOffsetInfo>& interfaceOf...
function Il2CppType (line 209) | const Il2CppType* VTableSetUp::FindImplType(const Il2CppMethodDefini...
function VTableSetUp (line 235) | const VTableSetUp* VTableSetUp::FindAncestorTypeTree(const Il2CppTyp...
function RaiseParentOverridedMethodNotFindException (line 247) | static void RaiseParentOverridedMethodNotFindException(const Il2CppT...
function GenericClassMethod (line 263) | const GenericClassMethod* VTableSetUp::FindImplMethod(const Il2CppTy...
function IsExpliciteMethodNameMatch (line 446) | static bool IsExpliciteMethodNameMatch(const char* implMethodName, c...
FILE: hybridclr/metadata/VTableSetup.h
function namespace (line 11) | namespace hybridclr
FILE: hybridclr/transform/BasicBlockSpliter.cpp
type hybridclr (line 8) | namespace hybridclr
type transform (line 10) | namespace transform
FILE: hybridclr/transform/BasicBlockSpliter.h
function namespace (line 8) | namespace hybridclr
FILE: hybridclr/transform/TemporaryMemoryArena.cpp
type hybridclr (line 3) | namespace hybridclr
type transform (line 5) | namespace transform
FILE: hybridclr/transform/TemporaryMemoryArena.h
function namespace (line 9) | namespace hybridclr
FILE: hybridclr/transform/Transform.cpp
type hybridclr (line 10) | namespace hybridclr
type transform (line 12) | namespace transform
function InterpMethodInfo (line 15) | InterpMethodInfo* HiTransform::Transform(const MethodInfo* methodInfo)
FILE: hybridclr/transform/Transform.h
function namespace (line 10) | namespace hybridclr
FILE: hybridclr/transform/TransformContext.cpp
function AllocResolvedData (line 27) | void AllocResolvedData(il2cpp::utils::dynamic_array<uint64_t>& resolvedD...
function IRCommon (line 42) | IRCommon* CreateInitLocals(TemporaryMemoryArena& pool, uint32_t size, in...
function EvalStackReduceDataType (line 120) | EvalStackReduceDataType GetEvalStackReduceDataType(const Il2CppType* type)
function GetSizeByReduceType (line 184) | int32_t GetSizeByReduceType(EvalStackReduceDataType type)
function LocationDescInfo (line 202) | LocationDescInfo ComputValueTypeDescInfo(int32_t size, bool hasReference)
function LocationDescInfo (line 220) | LocationDescInfo ComputLocationDescInfo(const Il2CppType* type)
function IRCommon (line 297) | IRCommon* CreateLoadExpandDataToStackVarVar(TemporaryMemoryArena& pool, ...
function IRCommon (line 367) | IRCommon* CreateAssignVarVar(TemporaryMemoryArena& pool, int32_t dstOffs...
function HiOpcodeEnum (line 1469) | HiOpcodeEnum TransformContext::CalcGetMdArrElementVarVarOpcode(const Il2...
function GetTypeSize (line 2342) | static int GetTypeSize(const Il2CppType* type)
function CalculateParameterSize (line 2422) | static int CalculateParameterSize(const MethodInfo* methodInfo)
function Il2CppMethodPointer (line 2433) | static Il2CppMethodPointer ResolvePInvokeMethod(const MethodInfo* method...
function Il2CppType (line 2540) | inline const Il2CppType* InflateIfNeeded(const Il2CppType* type, const I...
function MethodInfo (line 2640) | static const MethodInfo* FindRedirectCreateString(const MethodInfo* shar...
function ShouldBeInlined (line 2667) | static bool ShouldBeInlined(const MethodInfo* method, int32_t depth)
FILE: hybridclr/transform/TransformContext.h
type IRBasicBlock (line 27) | struct IRBasicBlock
type ArgVarInfo (line 36) | struct ArgVarInfo
type LocVarInfo (line 44) | struct LocVarInfo
function EvalStackReduceDataType (line 51) | enum class EvalStackReduceDataType
FILE: hybridclr/transform/TransformContext_CallCommon.cpp
type hybridclr (line 5) | namespace hybridclr
type transform (line 7) | namespace transform
type ArgCommonType (line 9) | enum class ArgCommonType
function ArgCommonType (line 33) | static ArgCommonType ComputValueTypeArgCommonType(const Il2CppClass*...
function ArgCommonType (line 39) | static ArgCommonType ComputArgCommonType(const Il2CppType* type)
function ArgCommonType (line 119) | ArgCommonType ComputMethodArgHomoType(const MethodInfo* method)
FILE: hybridclr/transform/TransformContext_Instinct.cpp
type hybridclr (line 7) | namespace hybridclr
type transform (line 9) | namespace transform
type NamespaceAndName (line 11) | struct NamespaceAndName
type NamespaceAndNameHash (line 17) | struct NamespaceAndNameHash
type NamespaceAndNameEquals (line 27) | struct NamespaceAndNameEquals
type NamespaceAndNameAndMethod (line 36) | struct NamespaceAndNameAndMethod
type NamespaceAndNameAndMethodHash (line 43) | struct NamespaceAndNameAndMethodHash
type NamespaceAndNameAndMethodEquals (line 54) | struct NamespaceAndNameAndMethodEquals
function IH_object_ctor (line 76) | static bool IH_object_ctor(TransformContext& ctx, const MethodInfo* ...
function IH_Nullable_ctor (line 97) | static bool IH_Nullable_ctor(TransformContext& ctx, const MethodInfo...
function IH_Nullable_GetValueOrDefault (line 117) | static bool IH_Nullable_GetValueOrDefault(TransformContext& ctx, con...
function IH_Nullable_get_HasValue (line 153) | static bool IH_Nullable_get_HasValue(TransformContext& ctx, const Me...
function IH_Nullable_get_Value (line 173) | static bool IH_Nullable_get_Value(TransformContext& ctx, const Metho...
function IH_Array_GetGenericValueImpl (line 193) | static bool IH_Array_GetGenericValueImpl(TransformContext& ctx, cons...
function IH_Array_SetGenericValueImpl (line 205) | static bool IH_Array_SetGenericValueImpl(TransformContext& ctx, cons...
function IH_Interlocked_CompareExchange (line 217) | static bool IH_Interlocked_CompareExchange(TransformContext& ctx, co...
function IH_Interlocked_Exchange (line 258) | static bool IH_Interlocked_Exchange(TransformContext& ctx, const Met...
function IH_JitHelpers_Array_UnsafeMov (line 296) | static bool IH_JitHelpers_Array_UnsafeMov(TransformContext& ctx, con...
function IH_JitHelpers_UnsafeEnumCast (line 305) | static bool IH_JitHelpers_UnsafeEnumCast(TransformContext& ctx, cons...
function IH_JitHelpers_UnsafeCast (line 330) | static bool IH_JitHelpers_UnsafeCast(TransformContext& ctx, const Me...
function IH_JitHelpers_UnsafeEnumCastLong (line 338) | static bool IH_JitHelpers_UnsafeEnumCastLong(TransformContext& ctx, ...
function IH_Assembly_GetExecutingAssembly (line 346) | static bool IH_Assembly_GetExecutingAssembly(TransformContext& ctx, ...
function IH_MethodBase_GetCurrentMethod (line 355) | static bool IH_MethodBase_GetCurrentMethod(TransformContext& ctx, co...
function IH_UnityEngine_Vector2_ctor (line 364) | static bool IH_UnityEngine_Vector2_ctor(TransformContext& ctx, const...
function IH_UnityEngine_Vector3_ctor (line 379) | static bool IH_UnityEngine_Vector3_ctor(TransformContext& ctx, const...
function IH_UnityEngine_Vector4_ctor (line 408) | static bool IH_UnityEngine_Vector4_ctor(TransformContext& ctx, const...
function IH_ByReference_get_Value (line 449) | static bool IH_ByReference_get_Value(TransformContext& ctx, const Me...
function MethodInfo (line 462) | static const MethodInfo* FindZeroArgumentCtor(Il2CppClass* klass)
function IH_Activator_CreateInstance (line 476) | static bool IH_Activator_CreateInstance(TransformContext& ctx, const...
type InstinctHandlerInfo (line 524) | struct InstinctHandlerInfo
type CtorInstinctHandlerInfo (line 556) | struct CtorInstinctHandlerInfo
function CIH_Object (line 563) | static bool CIH_Object(TransformContext& ctx, const MethodInfo* method)
function CIH_String (line 572) | static bool CIH_String(TransformContext& ctx, const MethodInfo* method)
function CIH_Nullable (line 627) | static bool CIH_Nullable(TransformContext& ctx, const MethodInfo* me...
function CIH_MdArray (line 642) | static bool CIH_MdArray(TransformContext& ctx, const MethodInfo* met...
function CIH_Delegate (line 672) | static bool CIH_Delegate(TransformContext& ctx, const MethodInfo* me...
function CIH_UnityEngine_Vector2_ctor (line 703) | static bool CIH_UnityEngine_Vector2_ctor(TransformContext& ctx, cons...
function CIH_UnityEngine_Vector3_ctor (line 718) | static bool CIH_UnityEngine_Vector3_ctor(TransformContext& ctx, cons...
function CIH_UnityEngine_Vector4_ctor (line 747) | static bool CIH_UnityEngine_Vector4_ctor(TransformContext& ctx, cons...
function CIH_ByReference (line 788) | static bool CIH_ByReference(TransformContext& ctx, const MethodInfo*...
FILE: hybridclr/transform/TransformModule.cpp
type hybridclr (line 4) | namespace hybridclr
type transform (line 6) | namespace transform
FILE: hybridclr/transform/TransformModule.h
function namespace (line 3) | namespace hybridclr
Condensed preview — 87 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,645K chars).
[
{
"path": ".github/FUNDING.yml",
"chars": 928,
"preview": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [u"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 949,
"preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Describe the b"
},
{
"path": ".gitignore",
"chars": 1,
"preview": "\n"
},
{
"path": "LICENSE",
"chars": 1088,
"preview": "MIT License\n\nCopyright (c) 2023 Code Philosophy Technology Ltd.\n\nPermission is hereby granted, free of charge, to any pe"
},
{
"path": "README.md",
"chars": 3735,
"preview": "- [README 中文](./README.md)\n- [README English](./README_EN.md)\n\n# HybridCLR\n\n[\n- [README English](./README_EN.md)\n\n# HybridCLR\n\n[\n {\n "
},
{
"path": "hybridclr/CommonDef.h",
"chars": 4297,
"preview": "#pragma once\n\n#include <stdint.h>\n#include <cstring>\n#include <memory>\n\n#include \"Il2CppCompatibleDef.h\"\n\n#include \"util"
},
{
"path": "hybridclr/Il2CppCompatibleDef.cpp",
"chars": 1829,
"preview": "#include \"Il2CppCompatibleDef.h\"\n\n#include \"vm/Runtime.h\"\n\n#include \"metadata/MetadataModule.h\"\n#include \"interpreter/In"
},
{
"path": "hybridclr/Il2CppCompatibleDef.h",
"chars": 10000,
"preview": "#pragma once\n\n#include \"il2cpp-config.h\"\n#include \"codegen/il2cpp-codegen-metadata.h\"\n#include \"il2cpp-class-internals.h"
},
{
"path": "hybridclr/Runtime.cpp",
"chars": 601,
"preview": "#include \"Runtime.h\"\n\n#include \"vm/Exception.h\"\n#include \"vm/String.h\"\n#include \"vm/Assembly.h\"\n#include \"vm/Class.h\"\n#i"
},
{
"path": "hybridclr/Runtime.h",
"chars": 121,
"preview": "#pragma once\n\n#include \"CommonDef.h\"\n\nnamespace hybridclr\n{\n\n\tclass Runtime\n\t{\n\tpublic:\n\t\tstatic void Initialize();\n\t};\n"
},
{
"path": "hybridclr/RuntimeApi.cpp",
"chars": 3377,
"preview": "#include \"RuntimeApi.h\"\n\n#include \"codegen/il2cpp-codegen.h\"\n#include \"vm/InternalCalls.h\"\n#include \"vm/Array.h\"\n#includ"
},
{
"path": "hybridclr/RuntimeApi.h",
"chars": 477,
"preview": "#pragma once\n\n#include <stdint.h>\n#include \"CommonDef.h\"\n\nnamespace hybridclr\n{\n\tclass RuntimeApi\n\t{\n\tpublic:\n\t\tstatic v"
},
{
"path": "hybridclr/RuntimeConfig.cpp",
"chars": 2768,
"preview": "#include \"RuntimeConfig.h\"\n\n#include \"vm/Exception.h\"\n\nnamespace hybridclr\n{\n\tstatic int32_t s_threadObjectStackSize = 1"
},
{
"path": "hybridclr/RuntimeConfig.h",
"chars": 802,
"preview": "#pragma once\n\n#include \"CommonDef.h\"\n\nnamespace hybridclr\n{\n\tenum class RuntimeOptionId\n\t{\n\t\tInterpreterThreadObjectStac"
},
{
"path": "hybridclr/generated/AssemblyManifest.cpp",
"chars": 165,
"preview": "#include \"../Il2CppCompatibleDef.h\"\n\nnamespace hybridclr\n{\n\tconst char* g_placeHolderAssemblies[] =\n\t{\n\t\t//!!!{{PLACE_HO"
},
{
"path": "hybridclr/generated/MethodBridge.cpp",
"chars": 1487,
"preview": "#include <codegen/il2cpp-codegen-metadata.h>\n#if HYBRIDCLR_UNITY_2023_OR_NEW\n#include <codegen/il2cpp-codegen.h>\n#elif H"
},
{
"path": "hybridclr/generated/UnityVersion.h",
"chars": 58,
"preview": "#pragma once\n\n//!!!{{UNITY_VERSION\n\n\n\n//!!!}}UNITY_VERSION"
},
{
"path": "hybridclr/interpreter/Engine.cpp",
"chars": 5179,
"preview": "#include \"Engine.h\"\n\n#include \"codegen/il2cpp-codegen.h\"\n\n#include \"Interpreter.h\"\n#include \"MemoryUtil.h\"\n#include \"../"
},
{
"path": "hybridclr/interpreter/Engine.h",
"chars": 7670,
"preview": "#pragma once\n\n#include <stack>\n\n#include \"../CommonDef.h\"\n\n#include \"gc/GarbageCollector.h\"\n#include \"vm/Exception.h\"\n#i"
},
{
"path": "hybridclr/interpreter/InstrinctDef.h",
"chars": 1170,
"preview": "#pragma once\n#include \"../CommonDef.h\"\n\nnamespace hybridclr\n{\nnamespace interpreter\n{\n\n\tstruct HtVector2f\n\t{\n\t\tfloat x;\n"
},
{
"path": "hybridclr/interpreter/Instruction.cpp",
"chars": 5105,
"preview": "#include \"Instruction.h\"\n\nnamespace hybridclr\n{\nnamespace interpreter\n{\n uint16_t g_instructionSizes[] =\n {\n\t\t0,\n "
},
{
"path": "hybridclr/interpreter/Instruction.h",
"chars": 166165,
"preview": "#pragma once\n\n#include \"../CommonDef.h\"\n\nnamespace hybridclr\n{\nnamespace interpreter\n{\n\n\tenum class PrefixFlags\n\t{\n\t\tNon"
},
{
"path": "hybridclr/interpreter/Interpreter.cpp",
"chars": 331,
"preview": "\n#include \"Interpreter.h\"\n\n#include <unordered_map>\n\n#include \"vm/GlobalMetadata.h\"\n#include \"vm/MetadataLock.h\"\n#includ"
},
{
"path": "hybridclr/interpreter/Interpreter.h",
"chars": 218,
"preview": "#pragma once\n\n#include \"InterpreterDefs.h\"\n\nnamespace hybridclr\n{\n\nnamespace interpreter\n{\n\n\tclass Interpreter\n\t{\n\tpubli"
},
{
"path": "hybridclr/interpreter/InterpreterDefs.cpp",
"chars": 116,
"preview": "\n#include \"../metadata/MetadataUtil.h\"\n\n#include \"MemoryUtil.h\"\n\n\nnamespace hybridclr\n{\nnamespace interpreter\n{\n\n}\n}"
},
{
"path": "hybridclr/interpreter/InterpreterDefs.h",
"chars": 2408,
"preview": "#pragma once\n#include \"../CommonDef.h\"\n#include \"../metadata/MetadataDef.h\"\n\nnamespace hybridclr\n{\n\tnamespace interprete"
},
{
"path": "hybridclr/interpreter/InterpreterModule.cpp",
"chars": 22915,
"preview": "#include \"InterpreterModule.h\"\n\n#include \"Interpreter.h\"\n\n#include <unordered_map>\n#include <unordered_set>\n\n#include \"B"
},
{
"path": "hybridclr/interpreter/InterpreterModule.h",
"chars": 3295,
"preview": "#pragma once\n\n#include \"os/ThreadLocalValue.h\"\n\n#include \"../CommonDef.h\"\n#include \"MethodBridge.h\"\n#include \"Engine.h\"\n"
},
{
"path": "hybridclr/interpreter/InterpreterUtil.cpp",
"chars": 2693,
"preview": "#include \"InterpreterUtil.h\"\n\n#include \"vm/Object.h\"\n\n#include \"../metadata/MetadataUtil.h\"\n\nnamespace hybridclr\n{\nnames"
},
{
"path": "hybridclr/interpreter/InterpreterUtil.h",
"chars": 2353,
"preview": "#pragma once\n\n#if HYBRIDCLR_UNITY_2023_OR_NEW\n#include \"codegen/il2cpp-codegen.h\"\n#else\n#include \"codegen/il2cpp-codegen"
},
{
"path": "hybridclr/interpreter/Interpreter_Execute.cpp",
"chars": 497970,
"preview": "\n#include \"Interpreter.h\"\n\n#include <cmath>\n#include <algorithm>\n\n#include \"vm/Object.h\"\n#include \"vm/Class.h\"\n#include "
},
{
"path": "hybridclr/interpreter/MemoryUtil.h",
"chars": 4848,
"preview": "#pragma once\n#include \"InterpreterDefs.h\"\n\nnamespace hybridclr\n{\nnamespace interpreter\n{\n\n\tinline void Copy1(void* dst, "
},
{
"path": "hybridclr/interpreter/MethodBridge.cpp",
"chars": 9749,
"preview": "#include \"MethodBridge.h\"\n\n#include \"vm/Object.h\"\n#include \"vm/Class.h\"\n#include \"metadata/GenericMetadata.h\"\n\n#include"
},
{
"path": "hybridclr/interpreter/MethodBridge.h",
"chars": 2699,
"preview": "#pragma once\n\n#include \"../CommonDef.h\"\n#include \"InterpreterDefs.h\"\n\nnamespace hybridclr\n{\nnamespace interpreter\n{\n\tuni"
},
{
"path": "hybridclr/metadata/AOTHomologousImage.cpp",
"chars": 2725,
"preview": "#include \"AOTHomologousImage.h\"\n\n#include \"vm/MetadataLock.h\"\n#include \"vm/GlobalMetadata.h\"\n#include \"vm/Class.h\"\n#incl"
},
{
"path": "hybridclr/metadata/AOTHomologousImage.h",
"chars": 1114,
"preview": "#pragma once\n#include \"Image.h\"\n\nnamespace hybridclr\n{\nnamespace metadata\n{\n\tstruct AOTFieldData\n\t{\n\t\tuint32_t typeDefIn"
},
{
"path": "hybridclr/metadata/Assembly.cpp",
"chars": 7902,
"preview": "\n#include \"Assembly.h\"\n\n#include <cstring>\n#include <iostream>\n#include <vector>\n\n#include \"os/File.h\"\n#include \"utils/M"
},
{
"path": "hybridclr/metadata/Assembly.h",
"chars": 690,
"preview": "#pragma once\n\n#include \"../CommonDef.h\"\n\n#include \"InterpreterImage.h\"\n#include \"AOTHomologousImage.h\"\n\nnamespace hybrid"
},
{
"path": "hybridclr/metadata/BlobReader.h",
"chars": 4799,
"preview": "#pragma once\n\n#include \"../CommonDef.h\"\n#include \"MetadataUtil.h\"\n\nnamespace hybridclr\n{\nnamespace metadata\n{\n\n class"
},
{
"path": "hybridclr/metadata/ClassFieldLayoutCalculator.cpp",
"chars": 20887,
"preview": "#include \"ClassFieldLayoutCalculator.h\"\n\n#include \"metadata/FieldLayout.h\"\n#include \"metadata/GenericMetadata.h\"\n#includ"
},
{
"path": "hybridclr/metadata/ClassFieldLayoutCalculator.h",
"chars": 2088,
"preview": "#pragma once\n\n#include <vector>\n\n#include \"MetadataUtil.h\"\n\nnamespace hybridclr\n{\nnamespace metadata\n{\n\n\tstruct FieldLay"
},
{
"path": "hybridclr/metadata/Coff.h",
"chars": 2263,
"preview": "#pragma once\n#include \"../CommonDef.h\"\n\n\nnamespace hybridclr\n{\nnamespace metadata\n{\n struct PEHeader\n {\n ui"
},
{
"path": "hybridclr/metadata/ConsistentAOTHomologousImage.cpp",
"chars": 5743,
"preview": "#include \"ConsistentAOTHomologousImage.h\"\n\n#include \"vm/MetadataLock.h\"\n#include \"vm/GlobalMetadata.h\"\n#include \"vm/Clas"
},
{
"path": "hybridclr/metadata/ConsistentAOTHomologousImage.h",
"chars": 1041,
"preview": "#pragma once\n\n#include \"AOTHomologousImage.h\"\n\nnamespace hybridclr\n{\nnamespace metadata\n{\n\n\tclass ConsistentAOTHomologou"
},
{
"path": "hybridclr/metadata/CustomAttributeDataWriter.h",
"chars": 3543,
"preview": "#pragma once\n\n#include \"BlobReader.h\"\n\n#include \"../CommonDef.h\"\n\n#include \"utils/MemoryRead.h\"\n\nnamespace hybridclr\n{\nn"
},
{
"path": "hybridclr/metadata/Image.cpp",
"chars": 51766,
"preview": "#include \"Image.h\"\n\n#include \"vm/ClassInlines.h\"\n#include \"vm/Image.h\"\n#include \"vm/GlobalMetadata.h\"\n#include \"vm/Type."
},
{
"path": "hybridclr/metadata/Image.h",
"chars": 9836,
"preview": "#pragma once\n\n#include <vector>\n#include <unordered_map>\n#include <tuple>\n\n#include \"vm/GlobalMetadataFileInternals.h\"\n#"
},
{
"path": "hybridclr/metadata/InterpreterImage.cpp",
"chars": 88462,
"preview": "#include \"InterpreterImage.h\"\n\n#include <cstring>\n#include <cmath>\n#include <iostream>\n#include <algorithm>\n\n#include \"i"
},
{
"path": "hybridclr/metadata/InterpreterImage.h",
"chars": 27861,
"preview": "#pragma once\n\n#include <unordered_map>\n\n#if HYBRIDCLR_UNITY_2021_OR_NEW\n#include \"metadata/CustomAttributeDataReader.h\"\n"
},
{
"path": "hybridclr/metadata/MetadataDef.h",
"chars": 14003,
"preview": "#pragma once\n\n#include \"il2cpp-config.h\"\n\n#include \"Coff.h\"\n#include \"Tables.h\"\n\nnamespace hybridclr\n{\nnamespace metadat"
},
{
"path": "hybridclr/metadata/MetadataModule.cpp",
"chars": 1250,
"preview": "#include \"MetadataModule.h\"\n\n#include \"os/Atomic.h\"\n#include \"os/Mutex.h\"\n#include \"os/File.h\"\n#include \"vm/Exception.h\""
},
{
"path": "hybridclr/metadata/MetadataModule.h",
"chars": 8461,
"preview": "#pragma once\n\n#include \"InterpreterImage.h\"\n#include \"AOTHomologousImage.h\"\n#include \"Assembly.h\"\n\nnamespace hybridclr\n{"
},
{
"path": "hybridclr/metadata/MetadataPool.cpp",
"chars": 9853,
"preview": "#include \"MetadataPool.h\"\n\n#include \"utils/MemoryPool.h\"\n#include \"vm/MetadataAlloc.h\"\n#include \"vm/MetadataLock.h\"\n#inc"
},
{
"path": "hybridclr/metadata/MetadataPool.h",
"chars": 689,
"preview": "#pragma once\n\n#include \"../CommonDef.h\"\n\n#include \"metadata/GenericMetadata.h\"\n#include \"vm/MetadataAlloc.h\"\n\nnamespace "
},
{
"path": "hybridclr/metadata/MetadataReader.h",
"chars": 2019,
"preview": "#pragma once\n\n#include \"MetadataUtil.h\"\n\nnamespace hybridclr\n{\nnamespace metadata\n{\n struct ByteSpan\n {\n co"
},
{
"path": "hybridclr/metadata/MetadataUtil.cpp",
"chars": 24744,
"preview": "#include \"MetadataUtil.h\"\n\n#include \"vm/GlobalMetadata.h\"\n#include \"vm/GlobalMetadataFileInternals.h\"\n#include \"vm/Type."
},
{
"path": "hybridclr/metadata/MetadataUtil.h",
"chars": 16464,
"preview": "#pragma once\n#include <tuple>\n\n#include \"vm/GlobalMetadata.h\"\n#include \"vm/Exception.h\"\n#include \"utils/HashUtils.h\"\n#in"
},
{
"path": "hybridclr/metadata/MethodBodyCache.cpp",
"chars": 5392,
"preview": "#include <unordered_map>\n\n#include \"MethodBodyCache.h\"\n\n#include \"MetadataModule.h\"\n#include \"AOTHomologousImage.h\"\n#inc"
},
{
"path": "hybridclr/metadata/MethodBodyCache.h",
"chars": 372,
"preview": "#pragma once\n\n#include \"Image.h\"\n\nnamespace hybridclr\n{\nnamespace metadata\n{\n\tclass MethodBodyCache\n\t{\n\tpublic:\n\t\tstatic"
},
{
"path": "hybridclr/metadata/Opcodes.cpp",
"chars": 37926,
"preview": "#include \"Opcodes.h\"\n\n#include \"MetadataUtil.h\"\n\nnamespace hybridclr\n{\nnamespace metadata\n{\n\n\tOpCodeInfo g_opcodeInfos["
},
{
"path": "hybridclr/metadata/Opcodes.h",
"chars": 9279,
"preview": "#pragma once\n\n#include \"../CommonDef.h\"\n\nnamespace hybridclr\n{\nnamespace metadata\n{\n\tenum class OpcodeValue : uint8_t\n\t"
},
{
"path": "hybridclr/metadata/PDBImage.cpp",
"chars": 7235,
"preview": "#include \"PDBImage.h\"\n\n#include <algorithm>\n\n#include \"vm/MetadataLock.h\"\n\n#include \"../interpreter/InterpreterDefs.h\"\n\n"
},
{
"path": "hybridclr/metadata/PDBImage.h",
"chars": 2342,
"preview": "#pragma once\n\n#include \"RawImageBase.h\"\n\nnamespace hybridclr\n{\nnamespace metadata\n{\n\tstruct ILMapper\n\t{\n\t\tuint32_t irOff"
},
{
"path": "hybridclr/metadata/RawImage.cpp",
"chars": 2554,
"preview": "\n#include \"RawImage.h\"\n\n#include <cstring>\n#include <iostream>\n\n#include \"MetadataUtil.h\"\n#include \"Opcodes.h\"\n\nnamespac"
},
{
"path": "hybridclr/metadata/RawImage.h",
"chars": 314,
"preview": "#pragma once\n\n#include \"RawImageBase.h\"\n\nnamespace hybridclr\n{\nnamespace metadata\n{\n\n\tclass RawImage : public RawImageBa"
},
{
"path": "hybridclr/metadata/RawImageBase.cpp",
"chars": 27607,
"preview": "#include \"RawImage.h\"\n\nnamespace hybridclr\n{\nnamespace metadata\n{\n\tLoadImageErrorCode RawImageBase::Load(const void* raw"
},
{
"path": "hybridclr/metadata/RawImageBase.h",
"chars": 12416,
"preview": "#pragma once\n\n#include \"../CommonDef.h\"\n\n#include \"vm/String.h\"\n\n#include \"MetadataDef.h\"\n#include \"BlobReader.h\"\n#inclu"
},
{
"path": "hybridclr/metadata/SuperSetAOTHomologousImage.cpp",
"chars": 14947,
"preview": "#include \"SuperSetAOTHomologousImage.h\"\n\n#include \"vm/MetadataLock.h\"\n#include \"vm/GlobalMetadata.h\"\n#include \"vm/Class."
},
{
"path": "hybridclr/metadata/SuperSetAOTHomologousImage.h",
"chars": 3403,
"preview": "#pragma once\n\n#include \"AOTHomologousImage.h\"\n#include \"utils/Il2CppHashMap.h\"\n#include \"utils/HashUtils.h\"\n\nnamespace h"
},
{
"path": "hybridclr/metadata/Tables.h",
"chars": 7816,
"preview": "#pragma once\n#include <stdint.h>\n\nnamespace hybridclr\n{\nnamespace metadata\n{\n\n enum class TableType\n {\n MOD"
},
{
"path": "hybridclr/metadata/VTableSetup.cpp",
"chars": 25745,
"preview": "#include \"VTableSetup.h\"\n\n#include <algorithm>\n\n#include \"vm/GlobalMetadata.h\"\n#include \"metadata/GenericMetadata.h\"\n\n#i"
},
{
"path": "hybridclr/metadata/VTableSetup.h",
"chars": 4452,
"preview": "#pragma once\n\n#include <vector>\n\n#include \"metadata/Il2CppTypeHash.h\"\n#include \"metadata/Il2CppTypeCompare.h\"\n\n#include "
},
{
"path": "hybridclr/transform/BasicBlockSpliter.cpp",
"chars": 3278,
"preview": "#include \"BasicBlockSpliter.h\"\n\n#include \"../metadata/Opcodes.h\"\n#include \"../metadata/MetadataUtil.h\"\n\nusing namespace "
},
{
"path": "hybridclr/transform/BasicBlockSpliter.h",
"chars": 756,
"preview": "#pragma once\n\n#include <set>\n\n#include \"../CommonDef.h\"\n#include \"../metadata/MetadataDef.h\"\n\nnamespace hybridclr\n{\nname"
},
{
"path": "hybridclr/transform/TemporaryMemoryArena.cpp",
"chars": 592,
"preview": "#include \"TemporaryMemoryArena.h\"\n\nnamespace hybridclr\n{\nnamespace transform\n{\n\n\tTemporaryMemoryArena::Block TemporaryMe"
},
{
"path": "hybridclr/transform/TemporaryMemoryArena.h",
"chars": 1959,
"preview": "#pragma once\n\n#include <stack>\n#include <cmath>\n#include <vector>\n\n#include \"../CommonDef.h\"\n\nnamespace hybridclr\n{\n\tnam"
},
{
"path": "hybridclr/transform/Transform.cpp",
"chars": 1222,
"preview": "\n#include \"Transform.h\"\n\n#include <unordered_set>\n\n#include \"TransformContext.h\"\n\n#include \"../metadata/MethodBodyCache."
},
{
"path": "hybridclr/transform/Transform.h",
"chars": 360,
"preview": "#pragma once\n\n#include \"BasicBlockSpliter.h\"\n\n#include \"../metadata/Image.h\"\n#include \"../interpreter/Instruction.h\"\n#in"
},
{
"path": "hybridclr/transform/TransformContext.cpp",
"chars": 159985,
"preview": "#include \"TransformContext.h\"\n\n#include \"metadata/GenericMetadata.h\"\n#include \"vm/Class.h\"\n#include \"vm/Exception.h\"\n#in"
},
{
"path": "hybridclr/transform/TransformContext.h",
"chars": 9477,
"preview": "#pragma once\n\n#include <unordered_set>\n#include <set>\n\n#include \"TemporaryMemoryArena.h\"\n\n#include \"../metadata/Image.h\""
},
{
"path": "hybridclr/transform/TransformContext_CallCommon.cpp",
"chars": 16558,
"preview": "#include \"TransformContext.h\"\n\n#include \"../interpreter/MethodBridge.h\"\n\nnamespace hybridclr\n{\nnamespace transform\n{\n\ten"
},
{
"path": "hybridclr/transform/TransformContext_Instinct.cpp",
"chars": 28654,
"preview": "#include \"TransformContext.h\"\n\n#include \"utils/Il2CppHashMap.h\"\n#include \"utils/HashUtils.h\"\n#include \"utils/StringUtils"
},
{
"path": "hybridclr/transform/TransformModule.cpp",
"chars": 199,
"preview": "#include \"TransformModule.h\"\n#include \"TransformContext.h\"\n\nnamespace hybridclr\n{\nnamespace transform\n{\n\tvoid TransformM"
},
{
"path": "hybridclr/transform/TransformModule.h",
"chars": 128,
"preview": "#pragma once\n\nnamespace hybridclr\n{\nnamespace transform\n{\n\tclass TransformModule\n\t{\n\tpublic:\n\t\tstatic void Initialize();"
}
]
About this extraction
This page contains the full source code of the focus-creative-games/hybridclr GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 87 files (1.4 MB), approximately 462.3k tokens, and a symbol index with 597 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.