【发布时间】:2016-11-26 04:46:31
【问题描述】:
我最近遇到了一个名为tlbiel 的指令,我很好奇它的含义和它的用途。在进行了一些密集的 Google 搜索后,我看到了一份 IBM 文档,让我相信它与虚拟机管理程序相关。我面临的当前指令是tlbiel r3, 1,在研究了操作码(0x7C201A24)之后,我得出的结论是它大致转换为mtspr 3, 1;唯一的区别是 mtspr 的操作码中 21 - 30 处的 467 的预期值已更改为 274。但是,在执行 tlbiel 之前,之前直接引入了指令 li r3, 0x3FF 和 sldi r3, r3, 32,导致 r3 包含 0x00003FF000000000。
据我所知,没有值为 3 的 SPR,也根本没有关于 tlbiel 的真实文档(我可以找到)。这条指令有什么作用?
【问题讨论】:
-
据我所知,这是本地版本的 TLB 条目失效 (tlbie),其中本地意味着它不会影响系统中的其他 CPU。但很奇怪,IBM 没有清楚地解释这条指令......
-
可能与TLBIE指令有关,导致TLB条目失效。
-
@SamiKuhmonen,公平地说,该平台在 Xenon CPU (Xbox 360) 上运行,所以这可能是没有太多文档的原因。我应该补充一点,
li r3, 0x3FF和sldi r3, r3, 32都在 tlbiel 函数之前执行。这个值(0x00003FF000000000)看起来有什么熟悉的吗?谢谢你们提供的信息。 -
@MichaelPetch 感谢您提供有用的资源。但是,在这种情况下,tlbiel 后跟一个意外的立即值 (1),并且 r3 (RB) 似乎不包含无效扇区字段的三个定义值(0b00、0b10 和 0b11)。
标签: assembly powerpc hypervisor supervisor-mode