在 linux、amd64 上使用 g++,我知道线程本地存储是通过段寄存器 GS 访问的。 我想有一种方法可以指示编译器通过 FS 寄存器访问其他内存。 那个内存是一个垃圾收集区,我想和其他银行随意切换。 有可能做到吗? (我想这应该是因为线程本地存储是可能的)。
最佳答案
我将探讨的部分答案是 Clang
http://llvm.org/releases/3.3/tools/clang/docs/LanguageExtensions.html
“用地址空间 #256 注释指针使其成为相对于 X86 GS 段寄存器的代码生成,地址空间 #257 使其相对于 X86 FS 段。请注意,这是一个非常非常低的- 级别的功能,只有当你知道自己在做什么时才应该使用(例如在操作系统内核中)。”
关于assembly - linux g++ x64 通过 FS 段寄存器访问内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27983448/