是否有可能迫使(在我的情况gcc
或clang
)编译器使用特定的寄存器,可以说在x86_64
R15
一定变量,也禁止它使用R15
用于除该变量之外的任何其他目的。强制编译器使用某个寄存器的某个变量
16
A
回答
6
gcc可以做到这一点。
已经引用的gcc docs解答了如何强制变量进入某个寄存器的问题。
要停止编译器使用此寄存器生成代码用于其他目的,请使用gcc开关-ffixed-reg
(有关详细信息,请参阅gcc doc)。
相关问题
- 1. 如何强制C++编译器使用寄存器?
- 2. HLSL:在编译时强制执行常量寄存器限制
- 3. Verilog - 动态读取寄存器位或使用某些变量
- 4. 强制CUDA使用寄存器作为变量
- 5. MIPS编译器中的寄存器 - 使用哪个?
- 6. 为什么编译器将变量存储在寄存器中?
- 7. 访问一个SSE寄存器变量
- 8. 编译器中的寄存器分配
- 9. 强制某些编译器生成的变量进入特定的ELF部分(使用gcc)
- 10. 汇编局部变量和寄存器
- 11. gfortran编译器的强制矢量化
- 12. 防止重命名某些变量的闭包编译器
- 13. 指针寄存器变量
- 14. 强制编译器接受一个未使用的字符串?
- 15. SignalR强制某个应用程序在某个组中
- 16. 在CPU寄存器中分配寄存器变量的标准?
- 17. MIPS:将寄存器地址复制到另一个寄存器
- 18. XOR寄存器,寄存器(汇编)
- 19. 编译器如何知道某个变量是全局变量还是本地变量(C)
- 20. 强制写入只读寄存器#Modbus
- 21. 为某些控制器强制使用SSL的最佳方法?
- 22. 每个线程的寄存器数量
- 23. Magento。寄存器变量不起作用
- 24. 在LLVM IR中修改一个变量到一个寄存器
- 25. 标量变量和寄存器:CUDA
- 26. 存储字节在寄存器变量
- 27. 删除某个目录的编译器警告
- 28. 通过引用传递一个寄存器变量
- 29. 的内联汇编使用寄存器
- 30. 可能继承enum强制编译器只接受某些枚举值?
也许http://gcc.gnu.org/onlinedocs/gcc/Global-Reg-Vars.html可以提供帮助吗? –
为什么你认为你比编译器更懂得如何处理寄存器分配? –
@JonathanLeffler虽然我同意你的意图,但OP表示他认为他知道他更好。也许这只是练习? – stijn