Linux 相当于X64_64';ppc64上的s arch_prctl(arch_GET_FS和addr)
我有一个X86_64代码,用于检索指向线程状态的指针:Linux 相当于X64_64';ppc64上的s arch_prctl(arch_GET_FS和addr),linux,powerpc,Linux,Powerpc,我有一个X86_64代码,用于检索指向线程状态的指针: uintptr_t addr; arch_prctl(ARCH_GET_FS, &addr); 正如我在上所看到的,我猜这就是r13的用途。我实现了以下代码,我希望其行为与以下代码相同: 有那么简单吗?有更好的办法吗 在ppc64le机器上使用debian 8.1,我不清楚您真正想做什么 但是如果需要线程指针,r13是ppc64和ppc64le上的正确寄存器,而r2是ppc上的正确寄存器。 在如何访问线程本地存储中的字段时,仍然必
uintptr_t addr;
arch_prctl(ARCH_GET_FS, &addr);
正如我在上所看到的,我猜这就是r13
的用途。我实现了以下代码,我希望其行为与以下代码相同:
有那么简单吗?有更好的办法吗
在ppc64le机器上使用debian 8.1,我不清楚您真正想做什么 但是如果需要线程指针,r13是ppc64和ppc64le上的正确寄存器,而r2是ppc上的正确寄存器。 在如何访问线程本地存储中的字段时,仍然必须小心,因为它们是特定于ABI的 中的第3.7.2章将为您提供有关如何访问TLS中某些字段的更多详细信息。
如果您喜欢阅读一些代码,那么这就是神奇的部分真正发生的地方。我只想在ppc64le上模拟x86_64的相同行为
r13
看起来像我想要的指针,所以我只需要复制它的值。不过我得测试一下。
uintptr_t addr;
__asm__ ("\tmr %0, 13" : "=r" (addr));