- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道 @ zero_extendqisi2
的实际含义是什么在 gcc 汇编输出中,还有用法。我找不到qisi代表什么或任何类似的东西。
对于上下文,该行是 ldrb r3, [fp, #-9] @ zero_extendqisi2
这是 Raspberry Pi Zero W 上的 ARM,使用 GCC 编译。例如,当重新加载 unsigned char
时转换为 int
,禁用优化,GCC9.2 没有选项。 https://godbolt.org/z/7xnfqh .较旧的 GCC 一直到最早的 Godbolt (4.5) 并且可能更早地打印了相同的评论。
最佳答案
这是一个 RTL指令名称,包含在 Standard Names list of the GCC internals manual 中下 zero_extendmn2
.这里m,n
是 machine modes qi
和 si
,分别是一个字节和一个 32 位整数。所以这是 GCC 的指示,它正在生成一条指令,该指令接受一个字节(此处从内存加载)并将其零扩展为 32 位整数(此处在寄存器 r3 中)。这正是ARM ldrb
指令。
我不知道 2 代表什么,但它显然是 GCC 命名约定的一部分。
正如 Peter 指出的那样,GCC 在没有 -fverbose-asm
的情况下在程序集中包含这样的注释有点奇怪。 .实际上,注释被编码为机器描述文件中模板字符串的一部分, arm.md
.它可能是某些 GCC 开发人员添加后忘记取出的调试辅助工具。
(如果你提交这个作为你的作业,请正确引用这篇文章。)
关于c - @zero_extendqisi2 的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64896604/
我是一名优秀的程序员,十分优秀!