感谢您先阅读
我正在尝试从OPTEE-OS了解一些代码。
这是宏的一部分,似乎试图声明一个函数。
.macro LOCAL_FUNC name colon
.section .text.\name
.func \name
.type \name , %function
\name \colon
.endm
此功能位于 .text 部分。
我的问题是以下代码的目的是什么?
\name \colon
在下面的代码中,
.macro END_FUNC name
.size \name , .-\name
.endfunc
.endm
为什么应该在其中写入 .size ?
感谢您之前的回答。
答案 0 :(得分:1)
\name \colon
将创建具有给定名称的标签,因为ARM汇编语言中的标签由字符串和冒号给定。这将允许通过跳转到相同名称的标签来调用LOCAL_FUNC宏扩展后的代码。
\size
指令计算符号指向的对象正在使用的空间量,这意味着链接器可以在未使用符号的情况下完全排除该符号。有关\size
的更多信息,请参见this blog post。