luajit开发文档wiki中文版(六) LuaJIT 开发
2022年6月10日15:20:41
luajit开发文档中文版(一)下载和安装
luajit开发文档中文版(二)LuaJIT扩展
luajit开发文档中文版(三)FAQ 常见问题
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);
标签类型
伪操作码
例子
注意事项
QQ二群 166427999
博客文件如果不能下载请进群下载
如果公司项目有技术瓶颈问题,请联系↓↓
如果需要定制系统开发服务,请联系↓↓
技术服务QQ: 903464207