zherczeg/sljit

GitHub: zherczeg/sljit

一个轻量级、跨平台的低级JIT编译器,用于将字节码转换为支持多种CPU架构的本地机器码。

Stars: 1079 | Forks: 97

# SLJIT 平台无关的低级 JIT 编译器 https://zherczeg.github.io/sljit/
## 目的 SLJIT 是一个低级、平台无关的 JIT 编译器,非常适合将字节码转换为机器码。 ## 特性 - 支持多种目标架构: - `x86` 32 / 64 - `ARM` 32 / 64 - `RISC-V` 32 / 64 - `s390x` 64 - `PowerPC` 32 / 64 - `LoongArch` 64 - `MIPS` 32 / 64 - 支持大量操作 - 自修改代码 - 尾调用 - 快速调用 - 字节序反转(大小端切换) - 非对齐内存访问 - SIMD - 原子操作 - 允许直接访问寄存器(整数和浮点) - 支持为函数局部变量分配栈空间 - 支持一体化编译 - 允许将 SLJIT 的 API 完全隐藏,不对外暴露 - 允许将编译器序列化到字节缓冲区 - 适用于提前(AOT)编译 - 反序列化后可以恢复代码生成(部分 AOT 编译) ## 文档 主要文档来源是 [`sljitLir.h`](./sljit_src/sljitLir.h)。 更多文档可以在 [SLJIT 网站](https://zherczeg.github.io/sljit/) 以及 [`docs` 文件夹](./docs/)中找到。 ## 联系方式 可以发起一个 [Issue](https://github.com/zherczeg/sljit/issues) 或发送电子邮件至 hzmester@freemail.hu。 ## 许可证 SLJIT 采用 [Simplified BSD License](./LICENSE) 进行许可。 ## 特别感谢 - Alexander Nasonov - Carlo Marcelo Arenas Belón - Christian Persch - Daniel Richard G. - Giuseppe D'Angelo - H.J. Lu - James Cowgill - Jason Hood - Jiong Wang (*TileGX 支持*) - Marc Mutz - Martin Storsjö - Michael McConville - Mingtao Zhou (*LoongArch 支持*) - Walter Lee - Wen Xichang - YunQiang Su
标签:AOT编译, DNS 反向解析, Hakrawler, JIT编译器, LLVM替代, LoongArch, MIPS, PCRE, PowerPC, RISC-V, s390x, SIMD, X86, 代码生成, 动态二进制翻译, 即时编译, 原子操作, 后端编译, 字节码翻译, 客户端加密, 寄存器分配, 尾调用, 嵌入式系统, 序列化, 底层编译器, 底层虚拟机, 提前编译, 机器码, 正则表达式引擎, 汇编器, 渗透测试工具, 生成式AI安全, 系统编程, 编译原理, 自修改代码, 虚拟机, 解释器, 运行时环境, 高性能计算