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

相关文章
|
10月前
【变态面试题】【两种解法】不能创建临时变量(第三个变量),实现两个数的交换
【变态面试题】【两种解法】不能创建临时变量(第三个变量),实现两个数的交换
70 0
【变态面试题】【两种解法】不能创建临时变量(第三个变量),实现两个数的交换
|
4月前
|
数据挖掘 索引 Python
如何在处理重复值时保持数据的原始顺序?
可以在处理数据重复值时有效地保持数据的原始顺序,确保数据在清洗和预处理过程中不会因为重复值的处理而导致顺序混乱,从而保证了数据分析结果的准确性和可靠性。
168 64
|
10月前
|
Java Python
循环程序举例
循环程序举例
72 1
|
10月前
|
Java Go C++
Golang每日一练(leetDay0102) 数据流中位数、删除无效括号、累加数
Golang每日一练(leetDay0102) 数据流中位数、删除无效括号、累加数
85 0
Golang每日一练(leetDay0102) 数据流中位数、删除无效括号、累加数
|
10月前
|
C语言
C语言第四十四弹---调整奇偶数顺序
C语言第四十四弹---调整奇偶数顺序
|
C语言
C语言之用指针实现两个数组中元素的相加并存放到第三个数组中
C语言之用指针实现两个数组中元素的相加并存放到第三个数组中
220 0
#PY小贴士# for 循环定义的变量,循环外可以用吗?
我们知道,在 python 中要获取一个变量的值,必须是先给它赋值过,不然就是未定义。那么这个 i,代码中没有显式的赋值,在循环体之外还可以用吗?
golang 循环创建新协程,发现每次使用的循环变量都一样,都是最后一个
golang 循环创建新协程,发现每次使用的循环变量都一样,都是最后一个
golang 循环创建新协程,发现每次使用的循环变量都一样,都是最后一个