hyengine 编译问题之取出具体数值如何解决

简介: hyengine 编译问题之取出具体数值如何解决

问题一:单测用例的格式是怎样的?请给出一个例子。


单测用例的格式是怎样的?请给出一个例子。


参考回答:

单测用例的格式包含机器码的大端表示和对应的汇编代码,例如:

// 0a011f1a|  adc w10, w8, wzr  
ADC_W_W_W(&buffer, R10, R8, RZR);  
assert(buffer == bswap32(0x0a011f1a));


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/666110



问题二:反汇编器在hyengine中有什么作用?


反汇编器在hyengine中有什么作用?


参考回答:

反汇编器在hyengine中的目的是为了在优化器中识别机器码,并取出机器码中的参数使用,而不是为了完整的反汇编功能。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/666111



问题三:如何在优化器中判断某条指令是否为mov xd, xm?


如何在优化器中判断某条指令是否为mov xd, xm?


参考回答:

在优化器中,可以通过宏IS_MOV_X_X来判断某条指令是否为mov xd, xm,例如:

#define IS_MOV_X_X(ins) \  
    (IMM11(ins >> 21) == IMM11(HY_INS_TEMPLATE_MOV_X_X >> 21) && \  
    IMM11(ins >> 5) == IMM11(HY_INS_TEMPLATE_MOV_X_X >> 5))


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/666112



问题四:如何取出mov xd, xm指令中xd中的d的具体数值?


如何取出mov xd, xm指令中xd中的d的具体数值?


参考回答:

可以通过宏RD来取出xd中的d的具体数值,例如:#define RD(ins) IMM5(ins)。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/666113



问题五:为反汇编器也做了哪些对应的单测?


为反汇编器也做了哪些对应的单测?


参考回答:

为反汇编器也做了相应的单测,以验证其能正确识别机器码,例如:

// e7031eaa|    mov x7, x30  
assert(IS_MOV_X_X(bswap32(0xe7031eaa)));


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/666114

相关文章
|
22天前
|
存储 JavaScript
hyengine 编译问题之结果入栈如何解决
hyengine 编译问题之结果入栈如何解决
|
编译器 C语言 Windows
[Eigen中文文档] 编译器对堆栈对齐做出了错误的假设
本文将介绍编译器对堆栈对齐做出了错误的假设问题。
100 0
|
存储 自然语言处理 编译器
程序的编译与链接(C语言为例) #代码写好后到运行期间要经过怎样的过程呢?# 粗略版 #
程序的编译与链接(C语言为例) #代码写好后到运行期间要经过怎样的过程呢?# 粗略版 #
vba程序用7重循环来计算24
vba程序用7重循环来计算24
69 0
|
编译器
个人阿里笔试题目【编写一个编译器,计算代码在内存所需要的字节数】
个人阿里笔试题目【编写一个编译器,计算代码在内存所需要的字节数】
86 0
个人阿里笔试题目【编写一个编译器,计算代码在内存所需要的字节数】
lodash判断值是否是原始有限数值
lodash判断值是否是原始有限数值
79 0
|
小程序
小程序 onLaunch 参数差别
小程序 onLaunch 参数差别
499 0
小程序 onLaunch 参数差别
|
编译器 C语言 C++
【C 语言】数组作为参数退化为指针问题 ( 问题描述 | 从编译器角度分析该问题 | 出于提高 C 语言执行效率角度考虑 | 数组作为参数的推荐方案 )
【C 语言】数组作为参数退化为指针问题 ( 问题描述 | 从编译器角度分析该问题 | 出于提高 C 语言执行效率角度考虑 | 数组作为参数的推荐方案 )
151 0
【C 语言】数组作为参数退化为指针问题 ( 问题描述 | 从编译器角度分析该问题 | 出于提高 C 语言执行效率角度考虑 | 数组作为参数的推荐方案 )
|
自然语言处理
在以阶段划分的编译过程中,判断程序语句的形式是否正确属于()阶段的工作。
在以阶段划分的编译过程中,判断程序语句的形式是否正确属于()阶段的工作。
160 0
|
算法 Java
灵魂拷问:如何检查Java数组中是否包含某个值 ?(2)
灵魂拷问:如何检查Java数组中是否包含某个值 ?
144 0