luajit开发文档wiki中文版(六) LuaJIT 开发

本文档介绍了LuaJIT的下载、安装和扩展,并详细探讨了LuaJIT的性能调优、内部结构和系统集成。重点讲解了DynASM——一个用于动态代码生成的汇编工具,它的功能、用法和API,以及如何通过它来编写即时编译器和高性能计算代码。同时,文档提供了 DynASM 的工作流集成示例和相关资源,以帮助开发者更好地理解和应用这一工具。
摘要由CSDN通过智能技术生成

2022年6月10日15:20:41

luajit开发文档中文版(一)下载和安装

luajit开发文档中文版(二)LuaJIT扩展

luajit开发文档中文版(三)FAQ 常见问题

luajit开发文档wiki中文版(一) 总目录

luajit开发文档wiki中文版(二) LuaJIT 扩展

luajit开发文档wiki中文版(三)性能调优和测试

luajit开发文档wiki中文版(四) LuaJIT 内部结构

luajit开发文档wiki中文版(五) 系统集成

luajit开发文档wiki中文版(六) LuaJIT 开发

公开赞助

这是为 LuaJIT 计划的端口、功能和其他工作项的列表,但仍需要赞助商。

如果你想在 LuaJIT 的未来版本中看到这些特性中的任何一个并且有兴趣赞助它们,请阅读: https ://luajit.org/sponsors.html——谢谢!

注意:此列表已迁移到https://github.com/LuaJIT/LuaJIT/issues如果您有兴趣赞助任何列出的增强功能,请在问题跟踪器上添加评论。同样,请随意添加增强请求,包括作为问题的赞助提议。

DynASM API 文档

关于

DynASM 是用于代码生成引擎的动态汇编程序。DynASM 主要是作为 LuaJIT 的工具开发的,但也可能对其他项目有用。

如果您正在编写即时编译器或需要动态生成代码(例如,用于高性能图形或其他 CPU 密集型计算),DynASM 可能正是您正在寻找的。

DynASM 版权所有 © 2005-2013 Mike Pall。DynASM 是免费软件,在 MIT 许可下发布。

介绍

DynASM 是一个设计非常好的工具,它为在程序执行期间生成动态代码提供了一个非常有用的框架。DynASM 的优势之一是它允许在同一个源文件中以自然和自由格式的方式混合 C 和汇编代码。不幸的是,DynASM 在文档部门相当薄弱。弄清楚功能使用通常需要从 LuaJIT 源“逆向工程”其使用示例,这严重阻碍了 DynASM 对潜在新用户的可访问性。

此 wiki 条目旨在通过为社区提供一个中央存储库来帮助记录 DynASM 的功能以及简单的示例用法来改变这一点。

外部资源

工作流集成

DynASM proto API 函数

dasm_init(Dst_DECL, int maxsection)

初始化并释放 DynASM 状态

DASM_FDEF void dasm_init(Dst_DECL, int maxsection);
DASM_FDEF void dasm_free(Dst_DECL);

dasm_setupglobal(Dst_DECL, void **gl, unsigned int maxgl)

设置全局数组。必须先调用dasm_setup()

DASM_FDEF void dasm_setupglobal(Dst_DECL, void **gl, unsigned int maxgl);

dasm_growpc(Dst_DECL, unsigned int maxpc)

增长 PC 标签阵列。之后可以调用dasm_setup()

DASM_FDEF void dasm_growpc(Dst_DECL, unsigned int maxpc);

dasm_setup(Dst_DECL, const void *actionlist)

设置编码器

DASM_FDEF void dasm_setup(Dst_DECL, const void *actionlist);

dasm_put(Dst_DECL, int start, ...)

提供带有动作的编码器。调用由预处理器生成

DASM_FDEF void dasm_put(Dst_DECL, int start, ...);

dasm_link(Dst_DECL, size_t *szp)

链接部分并返回结果大小

DASM_FDEF int dasm_link(Dst_DECL, size_t *szp);

dasm_encode(Dst_DECL, void *buffer)

将部分编码到缓冲区中

DASM_FDEF int dasm_encode(Dst_DECL, void *buffer);

dasm_getpclabel(Dst_DECL, unsigned int pc)

获取 PC 标签偏移量

DASM_FDEF int dasm_getpclabel(Dst_DECL, unsigned int pc);

标签类型

伪操作码

例子

注意事项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值