【发布时间】:2010-12-10 05:18:26
【问题描述】:
Valgrind 使用中间代码表示来让我们检测二进制代码,这样我们就不必处理编程语言级别的结构。在将二进制代码转换为 Valgrind 的中间表示 (IR) 代码的过程中,它显示了寄存器用于加法等操作。其中有 1024 个正在使用。我没有得到另一种类型的寄存器,称为临时寄存器,表示为tX,其中 X 是某个数字。因此,我可以看到:
t28 = Add32(t26,0xFFFFFFFC:I32)
t4 = LDle:I32(t28)
t 表示临时寄存器。据我所见,它们的行为似乎与常规寄存器非常相似,但无法弄清楚它们有何不同。谁能告诉我什么是临时寄存器以及它与常规寄存器有何不同?
【问题讨论】:
-
我可能在这里遗漏了一些明显的东西,但在那个例子中我既没有看到
R也没有看到T...? -
@Laurence:解决了我的问题。感谢您指出。
标签: c architecture valgrind computer-architecture