链接寄存器
- 网络link register
-
然后使用lqd$lr,LROFFSET($sp)恢复链接寄存器。
Then restore the link register using lqd $ lr , LR_OFFSET ( $ sp ) .
-
在序言中,所要做的第一件事情是保存链接寄存器。
In the prologue , the first thing you do is save the link register .
-
最后,bi$lr(branchindirect)分支跳转到在链接寄存器内指定的地址(返回地址),进而从函数返回。
Finally , bi $ lr (" branch indirect ") branches to the address specified in the link register ( the return address ), thus returning from the function .
-
正如我先前提到的,LROFFSET是堆栈末端到链接寄存器保存区的偏移量。
As I mentioned earlier , LR_OFFSET is the offset from the end of the stack to the link register save area .
-
链接寄存器保存区与ABI的其他部分不同。
The link register save area is different from the other parts of the ABI .
-
也请注意必须要显式指定链接寄存器。
Notice also that you have to specify the link register explicitly .
-
lr-链接寄存器的值。
Lr-Value of the link register .
-
稍后,我会详细介绍链接寄存器,总的来说,它用于临时存储返回地址。
I will get to the link register shortly , but basically it is used for temporary storage of return addresses .
-
链接寄存器保存区存有被调用函数(而非当前函数)的链接寄存器内容。
The link register save area holds the link register contents of the function being called , rather than for the current function .
-
请记住链接寄存器存储在调用函数的堆栈框架内,而非函数自身的堆栈框架。
Remember that the link register is stored in the calling function 's stack frame , not the function 's own stack frame .
-
链接寄存器只在约定的意义上有一些特殊&SPU汇编语言允许在您所选择的任何寄存器内设置链接。
The link register is only special by convention & the SPU assembly language allows you to set the link in any register you choose .
-
所以,在这个函数中,我们使用了回链指针、链接寄存器保存区和一个本地变量。
So , in this function , we are using the back chain pointer , the link register save area , and one local variable .
-
所以该指令会将链接寄存器(存有返回地址)存储到调用函数堆栈框架的恰当位置。
So this instruction stores the link register ( which holds the return address ) into the proper location in the calling function 's stack frame .
-
但由于基线条件并不调用任何其他函数,所以无需从堆栈框架加载链接寄存器&值还在原处。
However , since the base case doesn 't call any other functions , you don 't need to load the link register from the stack frame & the value is still there .
-
当函数开始时,它实际上会将链接寄存器保存到调用函数的堆栈帧中,而不是自己的堆栈帧中,然后只有在需要时才会保存它。
When a function begins , it actually saves the link register in the calling function 's stack frame , not its own , and then only if it needs to save it .
-
由于未调用任何函数,也未使用任何本地存储,所以您根本无需堆栈框架,并可通过链接寄存器退出。
Since you did not call any functions or use any local storage , you did not need a stack frame at all , so you can now just exit through the link register .