【问题标题】:what is the advantage about mips uasm codemips uasm代码有什么优势
【发布时间】:2020-03-09 07:07:06
【问题描述】:

在mips架构的内核TLB处理部分,有一些uasm代码,这是另一种生成程序集的方式,而不是使用gcc。

我不知道为什么不写内联汇编而不是uasm。为什么? uasm有什么优势?

【问题讨论】:

标签: assembly linux-kernel kernel mips inline-assembly


【解决方案1】:

在 TLB 未命中处理程序中,我认为您需要完全控制所使用的指令。 (确保您仅通过已知存在的 TLB 条目访问内存)。仅对一些特殊指令使用内联 asm,并让 GCC 将局部变量溢出到堆栈中(如果编译时没有优化),是行不通的。

TLB-miss 处理程序入口点也不是应该返回 jr $ra 的函数。

所以最好的办法是用纯 asm 编写整个处理程序,而不是试图确保编译器发出一个“安全”的实现。

在 C 源文件内的全局范围内使用 asm("") 语句会起作用,但会使 asm 更难看,并使 asm 更难利用 C 预处理器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-19
    • 2012-12-19
    • 2010-09-08
    • 1970-01-01
    • 2012-11-30
    • 2022-01-21
    • 2016-01-22
    • 2013-04-08
    相关资源
    最近更新 更多