mips32 realease 2上-fPIC的全局开销

mips32 realease 2上-fPIC的全局开销,mips,cpu-architecture,overhead,mips32,fpic,Mips,Cpu Architecture,Overhead,Mips32,Fpic,在编译linux目标的代码时,它会使用请求位置无关的代码所增加的开销,这会根据体系结构的不同而有所不同。 最广为人知的例子是x86_32(又名IA32)和x86_64之间的差异:与x86_32不同,x86_64增加的开销可以忽略不计 我知道X86,但mips32 big-endian的开销是多少?由于MIPS使用PC插入跳转和链接(和跳转——但大多数跳转都很短,如果等于R0 R0,就可以使用分支)而不是PC偏移量,PIC调用可能会使用JALRegister(类似于共享库的全局偏移量表解决方案)。

在编译linux目标的代码时,它会使用请求位置无关的代码所增加的开销,这会根据体系结构的不同而有所不同。
最广为人知的例子是x86_32(又名IA32)和x86_64之间的差异:与x86_32不同,x86_64增加的开销可以忽略不计


我知道X86,但mips32 big-endian的开销是多少?

由于MIPS使用PC插入跳转和链接(和跳转——但大多数跳转都很短,如果等于R0 R0,就可以使用分支)而不是PC偏移量,PIC调用可能会使用JALRegister(类似于共享库的全局偏移量表解决方案)。(除了指令开销外,在分支目标缓冲区未命中的情况下,JAL目标可以比JALR更早地在管道中可用,因此可能会有一些额外的性能损失。)ISA还缺乏方便的PC相对寻址,这可能会影响相对于全局指针的64KiB可访问范围之外的全局地址。@PaulA.Clayton:gcc手册页说Jal仅用于-mlong调用。此外,我忘了说我甚至不知道非pic地址在这个拱门上是如何工作的所以,根据你的说法,有一个开销:但它并不能真正说明平均值是多少。(我问这个问题是因为我在编译gcc时出错。我想知道如果我用lto和-fPIC编译gcc的开销。它仍然对其他程序开放(我将来可能会使用它))