我最近遇到了一条称为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的真实文档(我可以找到)。该指令完成什么工作?
最佳答案
tlbiel
是“TLB本地无效条目”:它使TLB [转换后备缓冲区]中的条目无效。猜想该问题的评论与正常的TLB无效有关,但它是“本地的”,因为它仅使执行tlbiel的线程上的TLB条目无效
操作说明。
有关更多详细信息,通常的来源是Power ISA。它非常详细地解释了该指令,包括它对您指定的寄存器的作用。
有几种版本的ISA随处可见。最容易找到的两个是:
您需要注册一个IBM ID才能下载文件,但是这些文件是免费的。如果您要在PowerPC芯片上进行汇编程序级别的开发,那么它们绝对是宝贵的资源。
最后几件事:
tlbiel
足够且需要非本地版本的情况下。 关于assembly - tlbiel指令是什么,它有什么作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40815004/