Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 相当于X64_64';ppc64上的s arch_prctl(arch_GET_FS和addr)_Linux_Powerpc - Fatal编程技术网

Linux 相当于X64_64';ppc64上的s arch_prctl(arch_GET_FS和addr)

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上的正确寄存器。 在如何访问线程本地存储中的字段时,仍然必

我有一个X86_64代码,用于检索指向线程状态的指针:

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));