发明名称 |
一种在JavaScript脚本语言中预生成机器码指令的方法和装置 |
摘要 |
本发明实施例公开了一种在JavaScript脚本语言中预生成机器码指令的方法和装置,涉及动态语言编译领域,解决了提高机器码的生成速度这一问题。具体方案为:获取JavaScript脚本的中间代码,通过查询与所述中间代码对应的机器码指令的指令总长度,申请能容纳所述指令总长度的指令存储空间,将中间代码对应的机器码模板中的机器码指令复制到指令存储空间,根据中间代码,对与伪寄存器和立即数信息相关的机器码指令进行更改。本发明用于将中间代码生成机器码指令。 |
申请公布号 |
CN103077011B |
申请公布日期 |
2015.12.09 |
申请号 |
CN201210379940.7 |
申请日期 |
2012.10.09 |
申请人 |
华为技术有限公司 |
发明人 |
张振龙 |
分类号 |
G06F9/44(2006.01)I |
主分类号 |
G06F9/44(2006.01)I |
代理机构 |
北京中博世达专利商标代理有限公司 11274 |
代理人 |
申健 |
主权项 |
一种在JavaScript脚本语言中预生成机器码的方法,其特征在于,包括:获取JavaScript脚本的中间代码;所述中间代码通过对JavaScript脚本的源程序解析得到;从机器码模板中查询与所述中间代码对应的机器码指令的指令总长度,并申请能容纳所述机器码指令的指令存储空间;所述指令存储空间用于保存所述中间代码对应的机器码指令;所述机器码模板包含有所述机器码指令和所述机器码指令的指令总长度;将所述中间代码对应的机器码指令复制到所述指令存储空间;根据所述中间代码中的立即数和/或伪寄存器,对与伪寄存器和立即数信息相关的机器码指令进行修改,以便于修改后的机器码指令符合所述中间代码的解析结果;所述与伪寄存器和立即数信息相关的机器码指令,包含在复制到所述指令存储空间的、与所述中间代码对应的机器码指令中;继续执行上述将所述中间代码对应的机器码模板中的机器码指令复制到所述指令存储空间,以及修改与伪寄存器和立即数信息相关的机器码指令的动作,直至生成所有中间代码对应的机器码指令。 |
地址 |
518129 广东省深圳市龙岗区坂田华为总部办公楼 |